Django框架全面讲解 -- 序列化

Django框架全面讲解 -- 序列化

关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式。 
Python中用于序列化的两个模块

json     用于【字符串】和 【python基本数据类型】 间进行转换
pickle   用于【python特有的类型】 和 【python基本数据类型】间进行转换
  •  

Json模块提供了四个功能:dumps、dump、loads、load

Json.loads()用于将字典,列表形式的字符串转换成相应的字典,列表

Json.dump()将基本数据类型,列表,字典,转换成字符串

pickle模块提供了四个功能:dumps、dump、loads、load

 1. serializers


from django.core import serializers

ret = models.BookType.objects.all()

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

 2. json.dumps


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, field): 

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

# ds = json.dumps(d, cls=JsonCustomEncoder) 
  •  

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shentong1/article/details/78838644

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值