drf视图类的继承关系

# 两个视图基类
APIView
GenericAPIView

# 五个视图扩展类
ListModelMixin
CreateModelMixin
RetrieveModelMixin
UpdateModelMixin
DestroyModelMixin

# 九个视图扩展子类,继承上面5个视图扩展类加视图类
ListAPIView:                      ListModelMixin,APIView
CreateAPIView:                    CreateModelMixin,APIView
ListCreateAPIView:                ListModelMixin,CreateModelMixin,APIView
RetrieveAPIView:                  RetrieveModelMixin,APIView
UpdateAPIView:                    UpdateModelMixin,APIView
DestoryAPIView:                   DestoryModelMixin,APIView
RetrieveDestoryAPIView:RetrieveModelMixin,DestoryModelMixin,APIView
RetrieveUpdateAPIView:RetrieveModelMixin,UpdateModelMixin,APIView
RetrieveDestoryUpdateAPIView:RetrieveModelMixin,DestoryModelMixin,UpdateModelMixin,APIView

# 魔法
ViewSetMixin:重写了as_view方法,只要继承于ViewSetMixin及其子类,都需要再路由中的as_view括号内写映射关系

# 视图集
GenericViewSet:ViewSetMixin,GenericAPIView # 没有提供任何actions,但是提供了GenericAPIView的两个属性和5个方法。
ModelViewSet:ListAPIView,CreateAPIView,RetrieveAPIView,UpdateAPIView,DestoryAPIView,GenericAPIView  # 提供了5个actions,2个属性和5个方法
ReadOnlyModelViewSet:ListModelMixis,RetrieveModelMixin,GenericAPIView  # 提供了两个actions,读全部数据,读单条数据
ViewSet:ViewSetMixin,APIView  # 需要自己写actions,填写映射关系
posted @ 2022-10-06 10:16  荀飞  阅读(96)  评论(0)    收藏  举报