Django Rest framework后端接口框架,常用的子类视图
一、子类视图有哪些
DRF最高级别封装的子类视图一览(9个):
视图 | 作用 | 方法 | 父类 |
---|---|---|---|
ListAPIView | 查询多条数据 | get | GenericAPIView ,ListModelMixin |
CreateAPIView | 新增一条数据 | post | GenericAPIView ,CreateModelMixin |
ListCreateAPIView
|
查询多条数据,或者新增一条数据 | get,post |
GenericAPIView,ListModelMixin,CreateModelMixin |
RetrieveAPIView | 查询一条数据 | get | GenericAPIView ,RetrieveModelMixin |
UpdateAPIView | 修改一条数据 | put,patch | GenericAPIView ,UpdateModelMixin |
DestroyAPIView | 删除一条数据 | delete | GenericAPIView ,DestroyModelMixin |
RetrieveDestroyAPIView
|
查询或者删除一条数据 | get, delete |
GenericAPIView,RetrieveModelMixin,DestroyModelMixin |
RetrieveUpdateAPIView | 查询,更新一条数据 | get,put,patch | GenericAPIView ,RetrieveModelMixin ,UpdateModelMixin |
RetrieveUpdateDestroyAPIView | 获取,更新,删除一条数据 | get,put,patch,delete | GenericAPIView RetrieveModelMixin UpdateModelMixin DestroyModelMixin |
二、5个扩展类:
- RetrieveModelMixin
- ListModelMixin
- CreateModelMixin
- DestroyModelMixin
- UpdateModelMixin
三、子类视图源码
查看一下子类视图的源码:(取其中一个ListCreateAPIView分析就行,其他类似)
class ListCreateAPIView(mixins.ListModelMixin, mixins.CreateModelMixin, GenericAPIView): """ Concrete view for listing a queryset or creating a model instance. """ def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs)
发现子类视图中只是将GenericAPIView+5种扩展类组合,并封装一下,直接return回去