简介:

  前端,比如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

在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之序列化

 




以下是手工生成列表,并序列化成字符串

如果是手工传递数据到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解析器,解析下,查看内容。

django之序列化

 

 

 




相关文章:

  • 2022-03-05
  • 2021-06-01
  • 2021-09-01
  • 2021-11-13
  • 2021-12-30
  • 2021-08-27
猜你喜欢
  • 2021-07-16
  • 2022-12-23
  • 2021-10-08
  • 2021-07-28
  • 2021-09-19
  • 2022-02-15
  • 2022-01-22
相关资源
相似解决方案