序列化组件简单使用
序列化组件是什么
把python当中的对象转成json格式字符串,前后端分离是不能将对象返回,之前我们用的json又不能序列化对象只能序列化字典或者列表所以有了序列化组件
第一步
第二步
在视图中导入
rom rest_framework.views import APIView from rest_framework.serializers import Serializer from rest_framework.response import Response
Serializer是序列化的类
将数据库表数据获取出来
视图里面写cbv
Django内置的serializers(把对象序列化成json字符串)
from django.core import serializers
class Books(APIView): def get(self,request): books=models.Book.objects.all() ret = serializers.serialize("json", books) return HttpResponse(ret)
返回结果
Django内置的serializers非常的不好难以控制,把所有的信息有返回,不推荐使用,了解即可
序列化使用步骤
使用drf的序列化组件
1 新建一个序列化类继承Serializer
注意:序列化的类不能写在视图中,写在单独的py文件
2 在类中写要序列化的字段
在视图中使用序列化的类
1 实例化序列化的类产生对象,在产生对象的时候,传入需要序列化的对象(queryset)
2 对象.data
3 return Response(对象.data)
class Books(APIView): def get(self,request): response = {'code':100,'msg':'查询成功'} books=models.Book.objects.all() bookser = BookSerializer(books,many=True) response['data'] = bookser.data return Response(response)
#many=True,有时候序列化传过来的是一条,也有可能是多条,多条就要加上many=True,序列化一条可以不写,如果是一条可迭代对象可以是True,如果是单个对象就要用False