django之序列化
简介:
前端,比如VUE,他不认识后端的QUERY SET对象,后端只能转换成字符串才能认识,
这就需要序列化
Django内置的serializers |
# 使用django自带的序列化工具 def persons1(request): #获取查询集(query set) book_list=Person.objects.all() from django.core import serializers ret = serializers.serialize("json", book_list) return HttpResponse(ret)
说明:
这里只是提供一个内置的简单序列化工具,
后面会增加一个功能强大的序列化工具。
1,导入工具
from django.core import serializers
2,序列化成json格式的字符串,此字符串变量名是book_list
ret = serializers.serialize("json", book_list)
在HTML页面上显示的内容如下:
[{"model": "app01.person", "pk": 1, "fields": {"name": "\u674e\u660e", "age": 22}}, {"model": "app01.person", "pk": 2, "fields": {"name": "\u5c0f\u7ea2", "age": 33}}, {"model": "app01.person", "pk": 3, "fields": {"name": "\u5c0f\u660e", "age": 12}}]
格式化JSON解析内容如下:
以下是手工生成列表,并序列化成字符串 |
如果是手工传递数据到django服务器,则需要如下步骤,就显得太繁琐了
from app01.models import Person def persons(request): #获取查询集(query set) ret=Person.objects.all() person_list=[] #手工按照我们自定义的格式,生成列表 for value in ret: person_list.append({'name':value.name,'age':value.age}) print(person_list) # 使用json将列表序列化成字符串 import json s=json.dumps(person_list) return HttpResponse(s)
查看生成的字符串s
[{"age": 22, "name": "\u674e\u660e"}, {"age": 33, "name": "\u5c0f\u7ea2"}, {"age": 12, "name": "\u5c0f\u660e"}]
使用json解析器,解析下,查看内容。