视图层总结

视图层总结

一、两个视图基类

from rest_framework.views import APIView
from rest_framework.generics import GenericAPIView
  1. APIView
  2. GenericAPIView

二、五个视图扩展类

from rest_framework.generics import GenericAPIView  # 一定要配合GenericAPIView使用
from rest_framework.mixins import ListModelMixin, CreateModelMixin, UpdateModelMixin, RetrieveModelMixin, DestroyModelMixin
  1. 新增数据,CreateModelMixin
  2. 修改数据,UpdateModelMixin
  3. 删除数据,DestroyModelMixin
  4. 获取单个,RetrieveModelMixin
  5. 获取所有,ListModelMixin

三、九个视图子类

from rest_framework.generics import CreateAPIView, DestroyAPIView, ListAPIView, ListCreateAPIView, RetrieveAPIView, RetrieveUpdateDestroyAPIView, RetrieveDestroyAPIView, RetrieveUpdateAPIView, UpdateAPIView
  1. 查询所有 ListAPIView
  2. 新增数据 CreateAPIView
  3. 删除数据 DestroyAPIView
  4. 修改数据 UpdateAPIView
  5. 查询单个 RetrieveAPIView
  6. 查询所有新增数据 ListCreateAPIView
  7. 查询单个删除数据 RetrieveDestroyAPIView
  8. 查询单个修改数据 RetrieveUpdateAPIView
  9. 查询单个修改删除数据 RetrieveUpdateDestroyAPIView

四、 视图集

from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet,ViewSetMixin
  1. ModelViewSet
  2. ReadOnlyModelViewSet
  3. ViewSetMixin
  4. ViewSet
  5. GenericViewSet
# 继承视图集那就路由写法变了 变成映射的方式
urlpatterns = [
    path('books/', views.BookView.as_view({'get': 'list', 'post': 'create'})),
]

五、总结

  • 以后,你想继承APIView,但是想变路由写法【视图类中方法名任意命名】,要继承ViewSet
  • 以后,你想继承GenericAPIView,但是想变路由写法【视图类中方法名任意命名】,要继承GenericViewSet
posted @ 2023-02-11 20:57  阿丽米热  阅读(39)  评论(0编辑  收藏  举报
Title