序列化就是把模型用另一种格式保存起来。
Django 序列化是把 Django 模型翻译成其他格式。
序列化数据
最简单用法:
from django.core import serializers
data = serializers.serialize("xml", SomeModel.objects.all())
直接序列化到文件:
with open("file.xml", "w") as out:
xml_serializer.serialize(SomeModel.objects.all(), stream=out)
指定列:
fileds 参数
data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size'))
多继承:
all_objects = [*Restaurant.objects.all(), *Place.objects.all()]
data = serializers.serialize('xml', all_objects)
反序列化
通用:
for obj in serializers.deserialize("xml", data):
do_something_with(obj)
保存模型:
for deserialized_object in serializers.deserialize("xml", data):
if object_should_be_saved(deserialized_object):
deserialized_object.save()
忽略不存在的字段:
serializers.deserialize("xml", data, ignorenonexistent=True)
序列化格式
xml json yaml
不常用先了解这么多,以后用了再说。