首页 技术 正文
技术 2022年11月11日
0 收藏 813 点赞 5,080 浏览 2495 个字

drf的序列化组件:

  1. 用途: 把python中的对象,转成json格式字符串

   2. 使用步骤1: 写一个类继承Serializer或者ModelSerializer

    举例(类中选取字段进行序列化):

       class BookSerializer(serializers.Serializer):
         id = serializers.CharField()
         title = serializers.CharField()
         price = serializers.CharField()  

    举例(把类中字段全部进行序列化):    

    class TestSer(serializers.ModelSerializer):
    class Meta:
    model = models.Takes
    fields = '__all__'

 

  3. 使用步骤2(setting的配置):

        book_ser=BookSerializer(queryset对象/单个对象,many=True/False)
        book_ser.data   序列化完成的字典

  4.总结:

    1 变量名和source指定的值不能一样
    2 source=’publish.name’还支持继续 .
    3 source 还支持方法(没用)
    4 支持写方法,如下
      方法一定传一个参数,是当前book对象
      publish_dic=serializers.SerializerMethodField()
          def get_publish_dic(self,obj):

         return

      结果:{‘id’:obj.publish.pk,’name’:obj.publish.name}

drf的认真组件:

  1.认证组件的好处:
    比如要访问books/路径,必须登录之后才能访问。一旦登录成功,在响应结果中写一个随机字符串。
    举例:{status:100
        msg:登录成功
             token:sdafsdfasd
      }

    只要用了drf,post提交数据,就不需要csrf验证了

  

  2.使用步骤1:写一个类,继承BaseAuthentication

  3.使用步骤2:def authenticate(self,request) ,记住传request对象

  4.在视图类中使用:(不要加括号):

    1.局部使用:authentication_classes=[AuthLogin](写在views中)

    2.全局使用:-REST_FRAMEWORK={“DEFAULT_AUTHENTICATION_CLASSES”:[“app01.auth.AuthLogin”,]}(在setting中配置)

    3.全局使用的局部禁用:authentication_classes = [](写在views中)

  5.补充:

     -drf内置了一些认证类(了解):
     -TokenAuthentication
     -SessionAuthentication

drf的权限组件:

  1.使用步骤1:写一个类,继承BasePermission

  2.使用步骤2:def has_permission(self, request, view): ,记住传request对象和view

  3.在视图类中使用:(不要加括号):

    1.局部使用:permission_classes=[MyPer](写在views中)

    2.全局使用:-REST_FRAMEWORK={“DEFAULT_PERMISSION_CLASSES”:[‘app01.auth.MyPer’]}(在setting中配置)

    3.全局使用的局部禁用:permission_classes = [](写在views中)

drf的频率组件:

  1.使用步骤1:写一个类,继承SimpleRateThrottle

  2.使用步骤2:def get_cache_key(self, request, view):,记住传request对象和view

  3.使用步骤3:’DEFAULT_THROTTLE_RATES’: {
           这个key跟scope对应,value值3/m  3/h    4/d
           ‘xx’: ‘3/m’
          }(在setting中配置)

  4.在视图类中使用:(不要加括号):

    1.局部使用:throttle_classes = [VisitThrottle](写在views中)

    2.全局使用:REST_FRAMEWORK={“DEFAULT_THROTTLE_CLASSES”:[“app01.auth.VisitThrottle”]}(在setting中配置)

    3.全局使用的局部禁用:throttle_classes = [](写在views中)

drf的解析器:

  1.局部使用:parser_classes=[JSONParser,](写在views中)

  2.全局使用:‘DEFAULT_PARSER_CLASSES’:[‘rest_framework.parsers.JSONParser’](在setting中配置)

响应器(一般用默认就可以了):

  1.局部使用:renderer_classes=[JSONRenderer,](写在views中)

  2.全局使用:‘DEFAULT_RENDERER_CLASSES’: (
              ’rest_framework.renderers.JSONRenderer’,
              ‘rest_framework.renderers.BrowsableAPIRenderer’,
         )(在setting中配置)

   

  

下一篇: HTML语言
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,494
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295