详解django的serializer序列化model几种方法
作者:让我在雪地上撒点野 发布时间:2022-12-06 00:40:08
标签:django,serializer,model
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据
方法一:通过继承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
0
投稿
猜你喜欢
- 打印整数16进制num=10print('%#x'%num)打印字符串中的16进制arr='12342535'
- 一、发送消息import smtplibfrom email.mime.text import MIMETextfrom email.hea
- 1.IP代理某些网站会检测一段时间内某IP的访问次数,若访问次数过多会禁止访问,这时需要设置一些代理服务器,每隔一段时间换一个代理。IP代理
- 北京时间2月15日据国外媒体报道,美国知名sns网站Facebook全球活跃用户量已突破1.75亿大关。数据显示,全球20%的网民都使用Fa
- python代码运行助手是能在网页上运行python语言的工具。因为python的运行环境在很多教程里都是用dos的,黑乎乎的界面看的有点简
- 1、说明xlwt模块是非追加写入.xls模块,所以要一次性写入for循环和列表,这样就没有追加和非追加的说法。并且将Excel表合并,将每一
- 图片轮播滤镜转换效果,只支持ie浏览器<img width="156" height="60"
- 先声明一下,这是本人在某个项目中用到的,本人自己写的,如有雷同纯属巧合。同时也欢迎高人指正。这种星级的投票效果很常见,但是目前线上大多都是通
- 在制作网页的过程中,自适应问题是经常遇到,而又最让人头疼的,看了好多种解决的方法,但是都不是万能的。今天遇到这个问题,实在让我挠头,借鉴了
- 一般情况下,访问或设置剪贴板,IE 只需使用 window.clipboardData 的 getData 或 setData 方法即可。M
- 1、工厂模式在面向对象编程中,工厂模式是开发过程中最常用的设计模式之一,属于创建型模式,就是通过一个接口函数或对象来创建其他对象并返回,该模
- 认证支持中间件中间件类: django.contrib.auth.middleware.AuthenticationMiddleware .
- Python实现新版正方系统滑动验证码识别算法和方案步骤一:点击数据分析点击滑动按钮,将发送一个请求到 /zfcaptchaLogin请求内
- 小贤是一条可爱的小狗(Dog), 它的叫声很好听(wow), 每次看到主人的时候就会乖乖叫一声(yelp).从这段描述可以得到以下对象:fu
- 题目文件scores.csv包含十位学生的成绩单,表头是"姓名 语文 数学 英语"。请编程完成下述功能。1)计算每位学生
- 本文实例讲述了正则表达式匹配ip地址实例。代码结构非常简单易懂。分享给大家供大家参考。主要实现代码如下:import rereip = re
- 一、中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,
- 前言没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来。
- 上一小节讲解了行高与单行纯文字的垂直居中,而如果行内含有图片和文字,在浏览器内浏览时,读者可以发现文字和图片在垂直方向并不是沿中线居中,而是
- 本文实例讲述了用python读写excel的方法。分享给大家供大家参考。具体如下:最近需要从多个excel表里面用各种方式整理一些数据,虽然