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很多元素都不用关注调用