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自带的序列化组件得到的数据更全,直接交给前端处理即可。
前后端分离的项目做接口
上述操作就是做接口的过程:后端开发给前端提供一个接口,这个接口用于获取数据库中的相关数据。