drf-视图基类与扩展类

基类:

APIView

rest_framework.views.APIView

APIView是REST framework提供的所有视图的基类,继承自Django的View父类

GenericAPIView

rest_framework.generics.GenericAPIView

继承自APIVIew主要增加了操作序列化器和数据库查询的方法,作用是为下面Mixin扩展类的执行提供方法支持。通常在使用时,可搭配一个或多个Mixin扩展类。

扩展类

ListModelMixin

列表视图扩展类,提供list(request, *args, **kwargs)方法快速实现列表视图,返回200状态码。

该Mixin的list方法会对数据进行过滤和分页

CreateModelMixin

创建视图扩展类,提供create(request, *args, **kwargs)方法快速实现创建资源的视图,成功返回201状态码。

如果序列化器对前端发送的数据验证失败,返回400错误。

RetrieveModelMixin

详情视图扩展类,提供retrieve(request, *args, **kwargs)方法,可以快速实现返回一个存在的数据对象。

如果存在,返回200, 否则返回404。

UpdateModelMixin

更新视图扩展类,提供update(request, *args, **kwargs)方法,可以快速实现更新一个存在的数据对象。

同时也提供partial_update(request, *args, **kwargs)方法,可以实现局部更新。

成功返回200,序列化器校验数据失败时,返回400错误。

DestroyModelMixin

删除视图扩展类,提供destroy(request, *args, **kwargs)方法,可以快速实现删除一个存在的数据对象。

成功返回204,不存在返回404。

子类视图

CreateAPIView

提供 post 方法

继承自: GenericAPIView、CreateModelMixin

ListAPIView

提供 get 方法

继承自:GenericAPIView、ListModelMixin

RetrieveAPIView

提供 get 方法

继承自: GenericAPIView、RetrieveModelMixin

DestoryAPIView

提供 delete 方法

继承自:GenericAPIView、DestoryModelMixin

UpdateAPIView

提供 put 和 patch 方法

继承自:GenericAPIView、UpdateModelMixin

RetrieveUpdateAPIView

提供 get、put、patch方法

继承自: GenericAPIView、RetrieveModelMixin、UpdateModelMixin

RetrieveUpdateDestoryAPIView

提供 get、put、patch、delete方法

继承自:GenericAPIView、RetrieveModelMixin、UpdateModelMixin、DestoryModelMixin

满足不是幸福,平平淡淡才是真
原文地址:https://www.cnblogs.com/xing03/p/12607596.html