詳解django的serializer序列化model幾種方法
序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)
方法一:通過(guò)繼承View類,重寫(xiě)get方法,獲取商品的前是前十條數(shù)據(jù),通過(guò)serialize序列化數(shù)據(jù),返回?cái)?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):
"""
通過(guò)django的view實(shí)現(xiàn)商品列表頁(yè)
: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")
方法二:通過(guò)繼承View類,重寫(xiě)get方法,獲取指定獲取某些字段商品的前十條數(shù)據(jù),通過(guò)serialize序列化數(shù)據(jù),返回?cái)?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):
#重寫(xiě)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,通過(guò)繼承View類,重寫(xiě)get方法,獲取商品的前是前十條數(shù)據(jù),通過(guò)serialize序列化數(shù)據(jù),返回?cái)?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):
"""
通過(guò)django的view實(shí)現(xiàn)商品列表頁(yè)
:param request:
:return:
"""
#返回前所有商品的前10條數(shù)據(jù)
goods_list = Goods.objects.all()[:10]
#序列化,把內(nèi)存中的python對(duì)象,轉(zhuǎn)換成網(wǎng)絡(luò)中能夠傳輸?shù)膶?duì)象
#直接轉(zhuǎn)換成json類型的字符串
data = serializers.serialize("json",goods_list)
#轉(zhuǎn)換成字典
data = json.loads(data)
return JsonResponse(data,safe=False)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- django model object序列化實(shí)例
- Django model序列化為json的方法示例
- Django如何批量創(chuàng)建Model
- Django model重寫(xiě)save方法及update踩坑詳解
- django Model層常用驗(yàn)證器及自定義驗(yàn)證器詳解
- django models里數(shù)據(jù)表插入數(shù)據(jù)id自增操作
- Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟
- django實(shí)現(xiàn)將后臺(tái)model對(duì)象轉(zhuǎn)換成json對(duì)象并傳遞給前端jquery
- 通過(guò)代碼簡(jiǎn)單了解django model序列化作用
相關(guān)文章
python從入門(mén)到精通 windows安裝python圖文教程
這篇文章主要為大家詳細(xì)介紹了python從入門(mén)到精通,windows安裝python圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
Python使用re模塊實(shí)現(xiàn)信息篩選的方法
這篇文章主要介紹了Python使用re模塊實(shí)現(xiàn)信息篩選的方法,結(jié)合實(shí)例形式分析了Python正則re模塊進(jìn)行信息篩選操作的相關(guān)實(shí)現(xiàn)技巧及相關(guān)函數(shù)使用技巧,需要的朋友可以參考下2018-04-04
Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤的方法
這篇文章主要介紹了Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤,本項(xiàng)目通過(guò)采用深度學(xué)習(xí)方法實(shí)現(xiàn)YOLO算法行人檢測(cè)和deepsort算法對(duì)人員定位的和軌跡跟蹤,需要的朋友可以參考下2021-09-09
Django 1.10以上版本 url 配置注意事項(xiàng)詳解
這篇文章主要介紹了Django 1.10以上版本 url 配置注意事項(xiàng)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python實(shí)現(xiàn)GUI計(jì)算器(附源碼)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)GUI計(jì)算器,可執(zhí)行復(fù)雜運(yùn)算,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-11-11

