概述
一、简单定义
序列化:将数据库数据转化为前端需要格式(默认json)返回。 反序列化:将前端数据转化给模型类对象,保存到数据库中。
二、序列化简单用法
1、传统方式:
from
API import models
class RolesView(APIView):
""""
角色表演示序列化
"""
authentication_classes = []
parser_classes = [JSONParser, FormParser]
def get(self,request,*args,**kwargs):
#方式一,传统方式
roles = models.Role.objects.all().values('id','title')
roles = list(roles)
return JsonResponse(roles,safe=False)
2、drf方式:定义一个序列化器(继承与Serializer的类)类属性基本和models一模一样。但是他还支持定义一个属性加进去,下面讲。
from
rest_framework import serializers
from
API import models
import json
class RolesSerializer(serializers.Serializer):
id = serializers.IntegerField(label='ID',read_only=True)
title =
serializers.CharField(label='名称',max_length=32)
class RolesView(APIView):
""""
角色表演示序列化
"""
authentication_classes = []
parser_classes = [JSONParser, FormParser]
def get(self,request,*args,**kwargs):
# #方式一,传统方式
# roles = models.Role.objects.all().values('id','title')
# roles = list(roles)
# return JsonResponse(roles,safe=False)
#方式二,drf继承Serializer
roles = models.Role.objects.all()
#数据库查询
ser =
RolesSerializer(instance=roles,many=True)
#注意模型all()方法返回的是多条数据many必须为True
res = json.dumps(ser.data,ensure_ascii=False)
#用python内置json工具转化
return HttpResponse(res)
#注意此处是HttpResponse
序列化器接收两个参数默认都为空,instance(序列化使用)data(反序列化使用)
最后
以上就是喜悦石头为你收集整理的django rest framework系列11-序列化基本使用的全部内容,希望文章能够帮你解决django rest framework系列11-序列化基本使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复