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很多元素都不用关注调用
  • 相关阅读:
    使用Selenium对付一个点击游戏
    使用Selenium登录新浪微博
    LeetCode题解 #155 Min Stack
    LeetCode题解 #2 Add Two Numbers
    django for monkey(chapter one)
    Django,数据模型创建之数据库API参考(转载)
    python djang suit模板
    Jmeter多机并发压测IP地址问题
    Jmeter进行数据库压测
    fiddler实现手机端抓包(代理)
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/12642198.html
Copyright © 2011-2022 走看看