详解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多重继承新算法C3介绍
Sep 28 Python
python获得两个数组交集、并集、差集的方法
Mar 27 Python
Python实现学校管理系统
Jan 11 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Pandas时间序列:重采样及频率转换方式
Dec 26 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
python自动化调用百度api解决验证码
Apr 13 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
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
CSS3 边框效果
2019/11/04 HTML / CSS
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
学生个人的自我评价分享
2013/11/05 职场文书
个人委托书怎么写
2014/04/04 职场文书
电力工程合作意向书
2015/05/11 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript