django序列化组件serializers

需求:给前端返回用户表的所有数据,并且是列表套字典的数据结构。

手动序列化

手动构造列表套字典的数据结构,序列化后传给前端

from django.http import JsonResponse
from app01 import models


def ser_type(request):
    user_queryset = models.User.objects.all()
    user_list = []
    for user_obj in user_queryset:
        user_info = {
            'pk': user_obj.pk,
            'name': user_obj.name,
            'age': user_obj.age,
        }
        user_list.append(user_info)

    return JsonResponse(user_list, safe=False)		# 非字典序列化需要设置参数safe=False

序列化组件

使用django提供的序列化组件:serializers

from django.core import serializers


def ser_type(request):
    user_queryset = models.User.objects.all()
 
    res = serializers.serialize('json', user_queryset)
    return HttpResponse(res)


# serialize()的第一个参数是序列化采用的格式,第二个参数是一个queryset对象

使用django自带的序列化组件得到的数据更全,直接交给前端处理即可。

前后端分离的项目做接口

上述操作就是做接口的过程:后端开发给前端提供一个接口,这个接口用于获取数据库中的相关数据。

posted @ 2020-06-03 18:15  the3times  阅读(280)  评论(0编辑  收藏  举报