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中配置)

   

  

drf的组件和解析器的更多相关文章

  1. DRF 的 版本,解析器,与序列化

    DRF 的 版本,解析器,与序列化 补充 配置文件中的 类的调用: (字符串) v1 = ["view.xx.apth.Role","view.xx.apth.Role& ...

  2. Restful API学习Day5 - DRF之限制 分页 解析器和渲染器

    参考文档: Django REST framework基础:认证.权限.限制 Django REST framework基础:分页 Django REST framework基础:解析器和渲染器 一. ...

  3. $Django Rest Framework-频率组件,解析器

    1 频率组件 #自定义组件写频率认证(重点继承BaseThrottle) from rest_framework.throttling import BaseThrottle import time ...

  4. Django day28 频率组件,解析器

    一:频率组件: 1.频率是什么? 节流,访问控制 2. (1)内置的访问频率控制类SimpleRateThrottle (2)写一个类,继承SimpleRateThrottle class MyThr ...

  5. rest-framework组件 之 解析器

    解析器 request类 django的request类和rest-framework的request类的源码解析 局部视图 from rest_framework.parsers import JS ...

  6. DRF路由组件和渲染器组件

    参考博客:https://www.cnblogs.com/wupeiqi/articles/7805382.html

  7. DRF 解析器组件

    Django无法处理application/json协议请求的数据,即,如果用户通过application/json协议发送请求数据到达Django服务器,我们通过request.POST获取到的是一 ...

  8. DRF之频率限制、分页、解析器和渲染器

    一.频率限制 1.频率限制是做什么的 开放平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. 2.频率组件原理 DRF中的频率控制基本原理是基于访问次数和时间的,当然我们可以通 ...

  9. DjangoRestFramework 学习之restful规范 APIview 解析器组件 Postman等

    DjangoRestFramework学习一之restful规范.APIview.解析器组件.Postman等 本节目录 一 预备知识 二 restful规范 三 DRF的APIView和解析器组件 ...

随机推荐

  1. bzoj1911 [Apio2010]特别行动队commando

    题目链接 斜率优化 #include<cstdio> #include<cstdlib> #include<string> #include<cstring& ...

  2. 网站基础html javascript jquery

    第二章HTML HBuilder的使用 边改边看模式 chrome浏览器看. HTML的基本格式 超文本标记语言 HyperText Markup Language HyperText 超文本 Mar ...

  3. JavaScript-DOM(1)

    DOM简介 DOM 节点分类 DOM 节点层级关系 1.文档节点 1.父节点 2.标签(元素)节点 2.子节点 3.属性节点 3.兄弟节点 4.注释节点 4.根节点 5.文本节点 DOM节点分类 DO ...

  4. php+mysql 解决emoji问题

    问题描述: php项目使用了emoji表情符号��报错 网上查询资料解决步骤: 1.升级MySQL至5.5或以上(以支持emoji) 2.更改数据库,数据表字符编码为utf8mb4 更改数据库连接方式 ...

  5. pinpoint与zipkin的比较

    经过本周部署和测试pinpoint监控平台的工作,我对这套开源系统有了更进一步的认识. 初次见到pinpoint这套系统时,我被它各方面优秀的特征所折服:无需对项目代码进行任何改动就可以部署探针.追踪 ...

  6. Java 中断

    https://zhuanlan.zhihu.com/p/45667127 看的似懂非懂

  7. Fatal error: ENOSPC: System limit for number of file watchers reached

    参考https://www.jianshu.com/p/4d2edd55b471 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/ ...

  8. echarts之折线图配置(附带图例很多做成分页效果)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  9. 二叉树放置照相机 Binary Tree Cameras

    2019-03-27 15:39:37 问题描述: 问题求解: 很有意思的问题,问题描述简单,求解过程也可以非常的简洁,是个难得的好题. 求解的过程是自底向上进行分析,对于叶子节点,如果在叶子上放置照 ...

  10. ONOS架构-系统组件

    系统组件 系统分层 App/core/providers 业务和子系统 一个业务service是有多个组件构成的功能单元,基于各层软件栈提供一个垂直的分片slice,将构成业务service的组件集合 ...