Django Rest框架 APIView源码调用
Posted wuygblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django Rest框架 APIView源码调用相关的知识,希望对你有一定的参考价值。
上一篇说了请求访问的流程,这一篇说一下请求对应的源码调用
- as_view
- 定义view
- dispatch
- dispatch
- initialize_request
- get_parsers (获取解析器)
- parser_context (解析上下文)
- get_authentitors (获取认证器)
- get_context_negotiator (获取上下文内容)
- default_response_headers
- initial
- get_format_suffix
- kwargs上获取的
- key是settings中配置的FORMAT_SUFFIX_KWARG
- perform_content_negotiation
- get_renderers
- get_content_negotiator
- determine_version
- versioning_class
- perform_authentication
- request.user
- user是一个使用property修饰的函数
- 获取request._user
- 属性不存在则执行认证过程
- 便利认证器
- 调用认证器的方法authenticate
- 如果认证成功会返回一个元祖(user,auth),user和auth会被存到request
- 如果认证出现异常,或者所有认证器都没有成功,或直接进入_not_authenticated
- get_authenticators获得的认证器
- check_permissions
- get_permissions
- 迭代
- 如果没有权限,会permission_denied
- 直接抛异常,让程序终止
- 什么情况算是有权限
- 所有的权限器都无返回,has_permission都返回true
- check_throttles
- get_throttles
- 节流起会有allow_request方法
- 返回True代表允许
- 返回False代表不允许
- 不允许就会Throttled
- 就是抛异常
- initialize_request
以上是关于Django Rest框架 APIView源码调用的主要内容,如果未能解决你的问题,请参考以下文章
Django最牛逼,史上强无敌!最详细的教程!框架认证源码分析!
python Django Rest_Framework框架 APIView介绍与序列化器详解(图文并茂版)
python Django Rest_Framework框架 APIView介绍与序列化器详解(图文并茂版)
将 APIView 添加到 Django REST Framework 可浏览 API [重复]
即使我使用了 ScrapyItem.objects.all(),我在 django rest 框架的 APIView 内的 post 方法中也只得到一个对象。任何人都知道为啥