您的位置:首页 > 编程语言 > Go语言

Django的序列化

2017-08-03 17:49 162 查看
关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式。

1、serializers,Django内置

from django.core import serializers

ret = models.BookType.objects.all()

data = serializers.serialize("json", ret)


2、json.dumps,json方法

import json

#ret = models.BookType.objects.all().values('caption')
ret = models.BookType.objects.all().values_list('caption')

ret=list(ret)

result = json.dumps(ret)


由于json.dumps时无法处理datetime日期,所以可以通过自定义处理器来做扩展,如:

import json
from datetime import date
from datetime import datetime

class JsonCustomEncoder(json.JSONEncoder):

def default(self, value):

if isinstance(value, datetime):
return value.strftime('%Y-%m-%d %H:%M:%S')
elif isinstance(value, date):
return value.strftime('%Y-%m-%d')
else:
return json.JSONEncoder.default(self, value)

v = models.Server.objects.values("id","hostname","create_at")
data = json.dumps(list(v),cls=JsonCustomEncoder)


备注:json默认采用得就是json.JSONEncoder方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: