详解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实现方法
Nov 18 Python
python实现批量按比例缩放图片效果
Mar 30 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
python xlsxwriter模块的使用
Dec 24 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扩展模块memcached长连接使用方法分析
2014/12/24 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
python计算书页码的统计数字问题实例
2014/09/26 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python 判断奇数偶数的方法
2018/12/20 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python实现打印实心和空心菱形
2019/11/23 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
python 实现list或string按指定分段
2019/12/25 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python中的Cookie模块如何使用
2020/06/04 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
金融专业应届生求职信
2013/11/02 职场文书
中学生操行评语
2014/04/24 职场文书
新郎新娘答谢词
2015/01/04 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
人民币使用说明书
2019/04/17 职场文书
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL