zoukankan      html  css  js  c++  java
  • drf-apiview解读系列一

    APIView的详细解读
    一 包含属性
    1 renderer_class 渲染类
    2 parser_class 解析类
    3 authentication_class 认证类
    4 throttle_class 频率控制类
    5 permission_class 权限控制类
    6 context_neg_class 内容过滤类
    7 meta_data_class 元信息类
    8 version_class 版本控制类
    二 类设置(setting.py)
    1 在配置文件中的default可以看到这些类 例如 rest_framework.parser_class.method此种
    2 在配置稳重 通过 rest_framework={} 的设置可以手动将类载入全局
    示例
    REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticated',
    'mysql_web.utils.permissions.MyPermission'
    ),
    三 核心函数
    1 as_view() dispatch()
    2 APIVIew调用父类的as_view()函数,然后 重写了dispatch方法
    3 dispatch方法
    1 调用父类的__init__函数,然后将request变为私有属性_request,然后将其他功能进行封装,构建了自己的独特request
    1 request._request 原本request属性
    2 request.data.get('key') 表单数据 不加get代表表单全部数据
    3 request.user 访问用户属性
    4 request.auth 访问权限令牌(token)
    5 request.META HTTP访问的header全部信息
    6 request.query_params url拼接的元素
    2 检测三要素( 登录权限,使用权限,频率权限)
    3 分发http方法
    四 补充
    由于采用了JWT组件进行认证登录和权限控制,所以其中request很多元素都不用关注调用
  • 相关阅读:
    2019.6.28 校内测试 T3 【音乐会】道路千万条
    2019.6.28 校内测试 T2 【音乐会】二重变革
    2019.6.28 校内测试 T1 Jelly的难题1
    CentOS7:ifconfig command not found解决和netstat -an
    centos系统查看本机IP地址
    centos 端口iptables配置
    centos -bash: netstat: command not found
    Centos 安装 NodeJS
    Go语言-变量和常量
    go get
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/12642198.html
Copyright © 2011-2022 走看看