詳解django的serializer序列化model幾種方法
序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)
方法一:通過(guò)繼承View類(lèi),重寫(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類(lèi)型的字符串 data = serializers.serialize("json",goods_list) #注意要加上:"application/json",否則在瀏覽器顯示不正常 return HttpResponse(data,"application/json")
方法二:通過(guò)繼承View類(lèi),重寫(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類(lèi),重寫(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類(lèi)型的字符串 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 Numpy 控制臺(tái)完全輸出ndarray的實(shí)現(xiàn)
這篇文章主要介紹了Python Numpy 控制臺(tái)完全輸出ndarray的實(shí)現(xiàn)方式,希望給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python正則表達(dá)式使用經(jīng)典實(shí)例
本文給大家總結(jié)了17種python正則表達(dá)式使用經(jīng)典實(shí)例,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06Python讀取含url圖片鏈接的txt文檔方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04Python基于類(lèi)路徑字符串獲取靜態(tài)屬性
這篇文章主要介紹了Python基于類(lèi)路徑字符串獲取靜態(tài)屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Micropython固件使用Pico刷固件并配置VsCode開(kāi)發(fā)環(huán)境的方法
這篇文章主要介紹了Micropython固件使用Pico刷固件并配置VsCode開(kāi)發(fā)環(huán)境的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-07-07對(duì)python使用telnet實(shí)現(xiàn)弱密碼登錄的方法詳解
今天小編就為大家分享一篇對(duì)python使用telnet實(shí)現(xiàn)弱密碼登錄的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上
這篇文章主要介紹了Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上,本文講解了判斷 OpenVZ/Xen PV/UML、判斷 VMware/Xen HVM/KVM、判斷 VirtualBox/Virtual PC等方法,需要的朋友可以參考下2015-04-04conda安裝tensorflow和conda常用命令小結(jié)
這篇文章主要介紹了conda安裝tensorflow和conda常用命令小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02