详解django的serializer序列化model几种方法
作者:让我在雪地上撒点野 时间:2022-12-06 00:40:08
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据
方法一:通过继承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)
来源:https://blog.csdn.net/weixin_42301462/article/details/81393142
标签:django,serializer,model
0
投稿
猜你喜欢
Python的re模块正则表达式操作
2023-08-21 11:47:08
Python中collections.Counter()的具体使用
2023-04-22 23:26:35
JS实现选择TextArea内文本的方法
2024-04-16 10:40:02
Python函数中的全局变量详解
2022-08-05 13:58:34
利用ADODB.Stream使用浏览器下载服务器文件
2008-10-09 12:42:00
模拟下拉菜单[兼容IE系列以及火狐]
2009-12-13 10:23:00
Python3日期与时间戳转换的几种方法详解
2021-03-10 03:57:17
asp之自动闭合HTML/ubb标签函数+简单注释
2008-09-29 12:21:00
Python中Numpy的深拷贝和浅拷贝
2021-10-04 21:08:43
JavaScript中的onerror事件概述及使用
2024-05-03 15:06:39
如何配置关联Python 解释器 Anaconda的教程(图解)
2021-06-13 15:27:30
Go语言pointer及switch fallthrough实战详解
2024-05-09 14:55:07
4个的Python自动化脚本分享
2021-05-28 19:22:29
在MySQL中用正则表达式替换数据库中的内容的方法
2024-01-17 02:51:57
go流程控制代码详解
2023-10-15 18:14:19
Bootstrap轮播插件简单使用方法介绍
2024-04-27 15:19:06
SQL数据类型详解
2024-01-13 02:01:30
微信小程序实现图片上传功能
2023-09-06 13:08:44
HTML语言将加入硬件操作功能
2009-12-16 19:19:00
python中numpy的矩阵、多维数组的用法
2021-01-26 04:25:43