详解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 相关文章推荐
pyqt4教程之widget使用示例分享
Mar 07 Python
详解Python中的__init__和__new__
Mar 12 Python
用python找出那些被“标记”的照片
Apr 20 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
详解从Django Rest Framework响应中删除空字段
Jan 11 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
python2和python3在处理字符串上的区别详解
May 29 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
浅析python 字典嵌套
Sep 29 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
python实现折半查找和归并排序算法
2017/04/14 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Anaconda入门使用总结
2018/04/05 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Python文件路径名的操作方法
2019/10/30 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
浅析Python面向对象编程
2020/07/10 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
班级光棍节联谊会策划书
2014/10/10 职场文书
退休欢送会主持词
2015/07/01 职场文书
放假通知怎么写
2015/08/18 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
一文搞懂Python Sklearn库使用
2021/08/23 Python