标签:ted 需要 form 方法 iss cep erer 下一步 ica
APIView
下的dispatch
下的self.initial(request, *args, **kwargs)
,源码如下:
def initial(self, request, *args, **kwargs):
"""
在调用方法处理程序之前运行任何需要发生的事情
"""
# 获取请求的后缀格式
self.format_kwarg = self.get_format_suffix(**kwargs)
# 确定使用哪种渲染器和媒体类型来渲染响应,并存储
neg = self.perform_content_negotiation(request)
request.accepted_renderer, request.accepted_media_type = neg
# 如果正在使用版本控制,则确定 API 版本。
version, scheme = self.determine_version(request, *args, **kwargs)
request.version, request.versioning_scheme = version, scheme
# 3大认证,确保传入请求被允许
self.perform_authentication(request)
self.check_permissions(request)
self.check_throttles(request)
self.perform_authentication(request)
认证组件作用:校验用户 - 游客
、合法用户
、非法用户
request.user
中,再进入下一步校验(权限校验)403
权限异常结果
self.check_permissions(request)
权限组件:校验用户权限 - 必须登录
、所有用户
、登录读写游客只读
、自定义用户角色
403
权限异常结果
self.check_throttles(request)
频率组件:限制视图接口被访问的频率次数
- 限制的条件(IP、id、唯一键)
、频率周期时间(s、m、h)
、频率的次数(3/s)
没有达到限次:正常访问接口
达到限次:限制时间内不能访问,限制时间达到后,可以重新访问
标签:ted 需要 form 方法 iss cep erer 下一步 ica
原文地址:https://www.cnblogs.com/jiakecong/p/14871594.html