Django序列化

在django中QuerySet格式不能被json格式化处理传到前端,因此在处理此类数据时有两种方法:
1.Django序列化对象:serializers
    from django.core import serializers
    data = serializers.serialize("序列化格式",QuerySet )
    如果只想要序列化一部分字段,序列化指定的字段参数
    data=serializers.serialize("json",Book.objects.all(),fields=('name','price')
2.将QuerySet转换成字典或列表格式
    ret=Book.objects.all().values("caption")
    ret=list(ret)
    result=json.dumps(ret)
    json.dumps时无法处理datetime日期,可通过自定义的处理器来扩展
3.反序列化数据:deserialize
ret=serializers.deserialize("xml", data)  返回的是迭代器
deserialize迭代器返回的对象不是简单的Django对象。
相反,它们是包装已创建但未保存的对象和任何关联关系数据的特殊DeserializedObject实例。
调用DeserializedObject.save()将对象保存到数据库
for deserialized_object in serializers.deserialize("xml", data):
    if object_should_be_saved(deserialized_object):
        deserialized_object.save()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值