DRF视图
DRF视图
1.DRF中request和response的使用
-
在我们的DRF框架中提供了新的request,response以及APIVIew视图。
1.1Request
REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。
REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSON、表单等)将请求数据进行parse解析,解析为类字典对象保存到Request对象中。
Request对象的数据是自动根据前端发送数据的格式进行解析之后的结果。
- 请求体中的数据使用request.data接收
- url中拼接的参数使用requset.query_params接
1.2Response
REST framework提供了一个响应类
Response
,使用该类构造响应对象时,响应的具体数据内容会被转换(render渲染)成符合前端需求的类型。构造方式
Response(data, status=None, template_name=None, headers=None, content_type=None)
data
数据不要是render处理之后的数据,只需传递python的内建类型数据即可,REST framework会使用renderer
渲染器处理data
。data
不能是复杂结构的数据,如Django的模型类对象,对于这样的数据我们可以使用Serializer
序列化器序列化处理后(转为了Python字典类型)再传递给data
参数。参数说明:
-
data
: 为响应准备的序列化处理后的数据; -
status
: 状态码,默认200; -
template_name
: 模板名称,如果使用HTMLRenderer
时需指明; -
headers
: 用于存放响应头信息的字典; -
content_type
: 响应数据的Content-Type,通常此参数无需传递,REST framework会根据前端所需类型数据来设置该参数。
2-两个基本类视图关系分析
-
APIView继承自View 添加了限流,权限,认证属性等工能,
-
GenericAPIView继承自APIView 添加了序列化器指定数据,查询集属性,分页属性过滤属性等。
3-五个拓展类的关系分析
-
五个扩展类
-
保存数据 GreatModelMinxin
-
更新数据 UpdataModelMixin
-
删除数据 DestoryModelMixin
-
获取单一数据 RetrieveModelMixin
-
获取多个数据 ListModelMixin
-
-
拓展子类:使用多继承使其具有多个拓展类功能
上一篇: drf 视图说明属性和方法
下一篇: drf框架学习一:视图类