百木园-与人分享,
就是让自己快乐。

django自带的序列化组件

1.什么是序列化组件

在django中,自带一个序列化组件,它是用来将数据进行整理、转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作。

2.为什么要用序列化组件

当我们从数据库取出一些数据时,我们需要将数据转成特定的格式,比如列表套字典的形式,然后将这些数据序列化成json的格式传输给前端,这就需要我们在后端把数据库里的数据每一个都遍历取值出来,这样比较麻烦,而且当数据字段很多的时候,我们很多遍历出来!代码如下:

后端代码:

from django.http import JsonResponse   # 导入JsonResponse模块
from app01 import models

def ab_ser(request):
    user_queryset = models.User.objects.all()  # 查询所有的数据对象
    user_list = []   # 创建一个空列表
    for user_obj in user_queryset:   # 循环出每一个数据对象
        tmp = {       # 利用对象点的方式取出每一个对应元素来充当字段的值
            \'pk\':user_obj.pk,
            \'username\':user_obj.username,
            \'age\':user_obj.age,
            \'gender\':user_obj.gender
        }
        user_list.append(tmp)   # 添加到列表中
    return JsonResponse(user_list, safe=False)   # 转换成json格式返回给前端页面(safe属性为ture则表示只能传dict字典的形式,因为现在为列表的形式,所以改为False)

前端代码:

<body>
{% for user_obj in user_list %}
    <p>{{ user_obj }}</p>
{% endfor %}
</body>

所以,这时候django给我们提供了一个自带的序列化组件,它能够将从数据库取出的数据,自动整合成一个特定的格式!大大减少了我们的工作!

3.django自带的序列化组件

自带的序列化模块为serializes

# 格式:serializers.serialize(\'序列化成什么格式\',数据)
# 示例:

from django.core import serializers   # 导入

def ab_ser(request):
    user_queryset = models.User.objects.all()
    res = serializers.serialize(\'json\',user_queryset)  # 序列化成json格式数据
        \"\"\"会自动帮你将数据变成json格式的字符串 并且内部非常的全面\"\"\"
    return HttpResponse(res)  # 返回给前端页面
\'\'\'

[{\"model\": \"app01.user\", 
\"pk\": 1, 
\"fields\": {\"username\": \"gary\", \"age\": 19, \"gender\": 1}}, 

{\"model\": \"app01.user\", 
\"pk\": 2, 
\"fields\": {\"username\": \"tom\", \"age\": 20, \"gender\": 2}},

{\"model\": \"app01.user\", 
\"pk\": 3, 
 \"fields\": {\"username\": \"kevin\", \"age\": 29, \"gender\": 3}}, 
 
 {\"model\": \"app01.user\", 
 \"pk\": 4,
 \"fields\": {\"username\": \"jack\", \"age\": 38, \"gender\": 4}}]

\'\'\'

# 我们可以看到它帮我们处理的数据是非常全面的,
# 告诉了我们这个数据来自于哪一个应用下的拿一张表,还告诉了我们对应的主键值,和详细信息

来源:https://www.cnblogs.com/suncolor/p/16584554.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » django自带的序列化组件

相关推荐

  • 暂无文章