视图函数中的序列化
方式一
from django.core import serializers # 导入模块
res = serializers.serialize('json', hosts_list)
return HttpResponse(res)
方式二
res = hosts_list.values('hostname', 'ip')
import json
res = json.dumps(list(res)) # 注意加上list函数
return HttpResponse(res)
但这种方法不能序列化如时间等数据
方式三
自定义序列化from datetime import datetime
from datetime import date
import json
# Create your tests here.
class CustomEncoder(json.JSONEncoder): # 重写自定义序列化的方法
def default(self, field):
if isinstance(field, datetime):
return field.strftime('%Y-%m-%d %H:%M:%S')
elif isinstance(field, date):
return field.strftime('%Y-%m-%d')
else:
return json.JSONEncoder(self, field)
d = {
'k1': 'v1',
'k2': 'v2',
'datetime': datetime.now(),
}
res = json.dumps(d, cls=CustomEncoder) # 把重写的序列化方法传入到参数cls
print(res)
浙公网安备 33010602011771号