創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)主營思茅網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app開發(fā),思茅h5微信小程序搭建,思茅網(wǎng)站營銷推廣歡迎思茅等地區(qū)企業(yè)咨詢這篇文章將為大家詳細講解有關(guān)django要序列化的原因,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
django的序列化問題
Django中的序列化主要應用在將數(shù)據(jù)庫中檢索的數(shù)據(jù)返回給客戶端用戶,特別的Ajax請求一般返回的為Json格式。
1、serializers
from django.core import serializers #專門用來序列化django的類 data = serializers.serialize("序列化格式",QuerySet ) #eg:data = serializers.serialize("json",QuerySet )
serialize 方法的參數(shù)有二:一個序列化目標格式,另外一個是序列化的對象Django Model實例(一般情況下就是QuerySet)
2、json.dumps
這時候也許有朋友就會問了為什么不直接用json.dumps來序列化呢?因為json.dumps只能序列化python提供的數(shù)據(jù)結(jié)構(gòu),Django Model實例是django提供的數(shù)據(jù)結(jié)構(gòu)。但如果你要用json.dumps的話也不是不行:
data=list(QuerySet)#要先把QuerySet通過list方法成list對象
ret=json.dumps(data)
但是,json不能處理時間類型(datatime),Python自帶的json.dumps方法序列化數(shù)據(jù)時候如果格式化的數(shù)據(jù)中有datetime類型數(shù)據(jù)時候會報錯。
這時候就得自定義處理器來對json dumps做擴展:
import json from datetime import date from datetime import datetime class CJSONEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj,datetime.datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj,date): return obj.strftime('%Y-%m-%d') else: return json.JSONEncoder.default(self,obj) # dl= json.dumps(datalist, cls=JsonCustomEncoder)
關(guān)于django要序列化的原因就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)站名稱:django要序列化的原因-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://vcdvsql.cn/article48/phdep.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、自適應網(wǎng)站、網(wǎng)站導航、商城網(wǎng)站、網(wǎng)站設計、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容