django rest framework系列11-序列化基本使用

一、简单定义

序列化:将数据库数据转化为前端需要格式(默认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(反序列化使用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值