详解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中使用Inotify监控文件实例
Feb 14 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
Python实现身份证号码解析
Sep 01 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
python无序链表删除重复项的方法
Jan 17 Python
Django CSRF认证的几种解决方案
Mar 03 Python
python如何支持并发方法详解
Jul 25 Python
python3将变量输入的简单实例
Aug 19 Python
selenium判断元素是否存在的两种方法小结
Dec 07 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初学者们头痛的十四个问题
2007/01/15 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
php中序列化与反序列化详解
2017/02/13 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
prototype 学习笔记整理
2009/07/17 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
python安装scipy的步骤解析
2019/09/28 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
聊聊python中的循环遍历
2020/09/07 Python
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
教育科学研究生自荐信
2013/10/09 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2014年实验室工作总结
2014/12/03 职场文书
2015年安全月活动总结
2015/03/26 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript