详解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实现排序算法
Feb 14 Python
Web服务器框架 Tornado简介
Jul 16 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
Python清空文件并替换内容的实例
Oct 22 Python
Python字典对象实现原理详解
Jul 01 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
python3 配置logging日志类的操作
Apr 08 Python
python爬取天气数据的实例详解
Nov 20 Python
python 离散点图画法的实现
Apr 01 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
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php实现简单文件下载的方法
2015/01/30 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
Python的log日志功能及设置方法
2019/07/11 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
银行实习自我鉴定
2013/10/12 职场文书
创先争优个人承诺书
2014/08/30 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
销售辞职信范文
2015/03/02 职场文书
放假通知怎么写
2015/08/18 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript