DRF的View
视图,继承自Django的 View
,内部实现了 APIView
和 ViewSetMixin
两大类。同时在此基础上进行了扩展,实现了一些通用(Generic
)类,混入(Mixin
)类等额外功能类,帮助我们用更少的代码实现restful
风格的API接口。
下面对我们各类视图做一些说明。
View:
-
目录:
django/views/generic/base.py
-
Django原生,请求通过路由之后进入的地方
- 实现了
as_view()
方法,内部调用dispatch
方法转发请求到视图内部的方法。例如默认的GET
请求转发到get
方法 - 限定允许的请求方式
- 响应
options
类型请求的方法
APIView:
- 目录:
rest_framework/views.py
- DRF 继承自 Django的
View
- 重写了
as_view
方法,内部调用自己实现的dispatch
initial_request
等initialize_request
内使用Request
类,