zoukankan      html  css  js  c++  java
  • 序列化组件简单使用

    序列化组件是什么

    把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

  • 相关阅读:
    C#序列化效率对比
    将聚合记录集逆时针和顺时针旋转90度(行列互换)
    Sql的行列转换
    log4net配置
    input框添加阴影效果
    WCF自定义地址路由映射(不用svc文件)
    Jquery对当前日期的操作(格式化当前日期)
    用JQuery获取输入框中的光标位置
    sublime text3安装后html:5+Tab不能快速生成html头部信息的解决办法
    js获取url传递参数,js获取url?号后面的参数
  • 原文地址:https://www.cnblogs.com/zhengyuli/p/11120913.html
Copyright © 2011-2022 走看看