码迷,mamicode.com
首页 > 编程语言 > 详细

python之路--web--2--Django-10--序列化

时间:2017-12-05 20:12:05      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:djang   return   enc   default   color   turn   value   col   客户   

八、序列化

关于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--序列化

标签:djang   return   enc   default   color   turn   value   col   客户   

原文地址:http://www.cnblogs.com/eaglesour/p/7988925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!