两个视图基类

APIView
GenericAPIView

ViewSet

ViewSetMixin
ViewSet(ViewSetMixin,APIView)
GenericViewSet(ViewSetMixin,GenericAPIView)
ReadOnlyModelViewSet(RetrieveModelMixin,
                ListModelMixin,
                GenericAPIView)

ModelViewSet(CreateModelMixin,
             RetrieveModelMixin,
            UpdateModelMixin,
            DestroyModelMixin,
            ListModelMixin,
            GenericViewSet)

‘“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“

五个视图扩展类

CreateModelMixin
    - create

ListModelMixin
    - list

RetrieveModelMixin
    - retrieve

UpdateModelMixin
    - update
    - perform_update
    - partial_update

DestroyModelMixin
    - destroy
    - perform_destroy

九个视图扩展子类,继承上面5个视图扩展类加视图类

View(Django) -> dispatch -> 对应的视图方法

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

视图集

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,填写映射关系