详解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中的Cookie模块使用
Jul 06 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
python 检查是否为中文字符串的方法
Dec 28 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
Python开发入门——迭代的基本使用
Sep 03 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
python切割图片的示例
Nov 12 Python
Python道路车道线检测的实现
Jun 27 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实现基于mysqli的Model基类完整实例
2016/04/08 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
jQuery中next()方法用法实例
2015/01/07 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
python文件比较示例分享
2014/01/10 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
给排水专业应届生求职信
2013/10/12 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
中层竞聘演讲稿
2014/01/09 职场文书
中英文求职信范文
2014/01/27 职场文书
九年级英语教学反思
2014/01/31 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
党校学习心得体会范文
2014/09/09 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
总结Python连接CS2000的详细步骤
2021/06/23 Python
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
HTTP中的Content-type详解
2022/01/18 HTML / CSS