详解django的serializer序列化model几种方法


Posted in Python onOctober 16, 2018

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据

方法一:通过继承View类,重写get方法,获取商品的前是前十条数据,通过serialize序列化数据,返回数据响应。

from django.views.generic import View
from goods.models import Goods
from django.core import serializers
from django.http import HttpResponse
 
class GoodsListView(View):
 
  def get(self,request):
   """
   通过django的view实现商品列表页
   :param request:
   :return:
   """
   #返回前所有商品的前10条数据
   goods_list = Goods.objects.all()[:10]
   #直接转换成json类型的字符串
   data = serializers.serialize("json",goods_list)
   #注意要加上:"application/json",否则在浏览器显示不正常
   return HttpResponse(data,"application/json")

方法二:通过继承View类,重写get方法,获取指定获取某些字段商品的前十条数据,通过serialize序列化数据,返回数据响应。

from django.views.generic import View
from goods.models import Goods
from django.http import HttpResponse
import json
class GoodsListView(View):
  #重写get方法
  #django返回第一种方式
  def get(self,request):
    # 得到商品前10条数据
     goods=Goods.objects.all()[:10]
     goods_list=[]
     for good in goods:
       item={}
       item['name']=good.name
       item['click_num']=good.click_num
       item['shop_price']=good.shop_price
       goods_list.append(item)
    response_data=json.dumps(goods_list,ensure_ascii=False)
    #python字符串 设置为utf-8编码
    return HttpResponse(response_data,'application/json')

方法三:使用Jsonresponse,通过继承View类,重写get方法,获取商品的前是前十条数据,通过serialize序列化数据,返回数据响应,工作中我们常用第三种方法返回JSON数据。

from django.views.generic import View
from goods.models import Goods
from django.core import serializers
import json
from django.http import JsonResponse
class GoodsListView(View):
  def get(self,request):
   """
   通过django的view实现商品列表页
   :param request:
   :return:
   """
   #返回前所有商品的前10条数据
   goods_list = Goods.objects.all()[:10] 
   #序列化,把内存中的python对象,转换成网络中能够传输的对象
   #直接转换成json类型的字符串
   data = serializers.serialize("json",goods_list)
   #转换成字典
   data = json.loads(data)
   return JsonResponse(data,safe=False)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的类变量和成员变量用法实例教程
Aug 25 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
Python易忽视知识点小结
May 25 Python
python实现ID3决策树算法
Dec 20 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
python算法题 链表反转详解
Jul 02 Python
YUV转为jpg图像的实现
Dec 09 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
python用700行代码实现http客户端
Jan 14 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 #Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 #Python
django 将model转换为字典的方法示例
Oct 16 #Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 #Python
使用Python编写Prometheus监控的方法
Oct 15 #Python
python取数作为临时极大值(极小值)的方法
Oct 15 #Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 #Python
You might like
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python中encode()方法的使用简介
2015/05/18 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
Python爬虫文件下载图文教程
2018/12/23 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
pytorch中的inference使用实例
2020/02/20 Python
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
节能减排倡议书
2014/04/15 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
酒店前台辞职书
2015/02/26 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
导师鉴定意见
2015/06/05 职场文书
大学同学聚会感言
2015/07/30 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android