詳解django的serializer序列化model幾種方法
序列化是將對象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程。與序列化相對的是反序列化,它將流轉(zhuǎn)換為對象。這兩個過程結(jié)合起來,可以輕松地存儲和傳輸數(shù)據(jù)
方法一:通過繼承View類,重寫get方法,獲取商品的前是前十條數(shù)據(jù),通過serialize序列化數(shù)據(jù),返回數(shù)據(jù)響應(yīng)。
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實現(xiàn)商品列表頁
:param request:
:return:
"""
#返回前所有商品的前10條數(shù)據(jù)
goods_list = Goods.objects.all()[:10]
#直接轉(zhuǎn)換成json類型的字符串
data = serializers.serialize("json",goods_list)
#注意要加上:"application/json",否則在瀏覽器顯示不正常
return HttpResponse(data,"application/json")
方法二:通過繼承View類,重寫get方法,獲取指定獲取某些字段商品的前十條數(shù)據(jù),通過serialize序列化數(shù)據(jù),返回數(shù)據(jù)響應(yīng)。
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條數(shù)據(jù)
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字符串 設(shè)置為utf-8編碼
return HttpResponse(response_data,'application/json')
方法三:使用Jsonresponse,通過繼承View類,重寫get方法,獲取商品的前是前十條數(shù)據(jù),通過serialize序列化數(shù)據(jù),返回數(shù)據(jù)響應(yīng),工作中我們常用第三種方法返回JSON數(shù)據(jù)。
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實現(xiàn)商品列表頁
:param request:
:return:
"""
#返回前所有商品的前10條數(shù)據(jù)
goods_list = Goods.objects.all()[:10]
#序列化,把內(nèi)存中的python對象,轉(zhuǎn)換成網(wǎng)絡(luò)中能夠傳輸?shù)膶ο?
#直接轉(zhuǎn)換成json類型的字符串
data = serializers.serialize("json",goods_list)
#轉(zhuǎn)換成字典
data = json.loads(data)
return JsonResponse(data,safe=False)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python從入門到精通 windows安裝python圖文教程
這篇文章主要為大家詳細(xì)介紹了python從入門到精通,windows安裝python圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05
Deepsort + Yolo 實現(xiàn)行人檢測和軌跡追蹤的方法
這篇文章主要介紹了Deepsort + Yolo 實現(xiàn)行人檢測和軌跡追蹤,本項目通過采用深度學(xué)習(xí)方法實現(xiàn)YOLO算法行人檢測和deepsort算法對人員定位的和軌跡跟蹤,需要的朋友可以參考下2021-09-09

