详解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 29 Python
Python模拟登陆实现代码
Jun 14 Python
python入门教程 python入门神图一张
Mar 05 Python
python实现剪切功能
Jan 23 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Python叠加两幅栅格图像的实现方法
Jul 05 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
python递归下载文件夹下所有文件
Aug 31 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
python中remove函数的踩坑记录
Jan 04 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 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
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
python之Socket网络编程详解
2016/09/29 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
外贸公司实习自我鉴定
2013/09/24 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
安全承诺书格式
2014/05/21 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
学校端午节活动方案
2014/08/23 职场文书
信用卡工作证明模板
2014/09/14 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
先进集体申报材料
2014/12/25 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
python代码实现备忘录案例讲解
2021/07/26 Python
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs