APIView的流程分析 1.入口,因为视图类的继承APIView()的 as_view()是一个绑定类的方法 2.进入as_view(),正好这个as_view()有个返回值 返回的是dispatch() 然后找自己的 自己正好有个dispatch方法 3.进
APIView的流程分析
1.入口,因为视图类的继承APIView()的 as_view()是一个绑定类的方法
2.进入as_view(),正好这个as_view()有个返回值 返回的是dispatch() 然后找自己的 自己正好有个dispatch方法
3.进入initialize_request()方法 封装了request 执行了 认证、权限、频率
4.原生的request
-里面有个GET(以get形式提交的数据),以get形式提交的数据,都拆到environ内部,django把数据取出来转成了QueryDict的对象
-session不是原生request对象的属性,在中间件中放进去的(django.contrib.sessions.middleware.SessionMiddleware)
django.contrib.sessions.middleware.SessionMiddleware 中间件会里面写了个session 然后存入数据库
5.drf的Request类
data(post提交的数据,json格式,urlencoded,fromdata编码方式的数据) data的类型并不是固定的,可能是QueryDict,也可能是字典 query_params--->原生的GET 重写了__getattr__ 对象.属性 当属性不存在就会执行该方法 return getattr(self._requset,‘属性‘) FILES:上传的文件