python之路--web--2--Django-10--序列化
Posted EagleSour
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之路--web--2--Django-10--序列化相关的知识,希望对你有一定的参考价值。
八、序列化
关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式。
1、serializers
1 from django.core import serializers 2 3 ret = models.BookType.objects.all() 4 5 data = serializers.serialize("json", ret)
2、json.dumps
1 import json 2 3 #ret = models.BookType.objects.all().values(‘caption‘) 4 ret = models.BookType.objects.all().values_list(‘caption‘) 5 6 ret=list(ret) 7 8 result = json.dumps(ret)
由于json.dumps时无法处理datetime日期,所以可以通过自定义处理器来做扩展,如:
1 import json 2 from datetime import date 3 from datetime import datetime 4 5 class JsonCustomEncoder(json.JSONEncoder): 6 7 def default(self, field): 8 9 if isinstance(field, datetime): 10 return o.strftime(‘%Y-%m-%d %H:%M:%S‘) 11 elif isinstance(field, date): 12 return o.strftime(‘%Y-%m-%d‘) 13 else: 14 return json.JSONEncoder.default(self, field) 15 16 17 # ds = json.dumps(d, cls=JsonCustomEncoder)
以上是关于python之路--web--2--Django-10--序列化的主要内容,如果未能解决你的问题,请参考以下文章
python之路--web--2--Django-6-跨站请求伪造
python之路--web--2--Django-10-缓存