首页
学习
活动
专区
圈层
工具
发布

Django Rest Framework 视图(下)

Django Rest Framework 视图(上)

一、ModelViewSet

① 源码分析

ModelViewSet 做的更彻底,它又一次继承了 GenericViewSet,并且在此之前又继承了其它几个类,因此功能更多,变成了

ModelViewSet --> GenericViewSet --> APIView --> View

代码语言:javascript
复制
class ModelViewSet(mixins.CreateModelMixin, 
                    mixins.RetrieveModelMixin,
                    mixins.UpdateModelMixin,
                    mixins.DestroyModelMixin,
                    mixins.ListModelMixin,
                    GenericViewSet):
       pass

从这些类的名字可以大概看出,

CreateModelMixin

RetrieveModelMixin

UpdateModelMixin

DestroyModelMixin

ListModelMixin

分别对应,创建,获取单条数据,更新,删除,获取多条数据。

② 路由

由于在获取,删除,更新数据的时候需要这项数据的唯一标识,这里是 pk 主键,因此需要在 url 中增加正则匹配。

③ 视图

在视图中,并没有增加相应的增删改查的逻辑却能完成相应的功能,这是因为继承的 mixin 类中,已经有对应的方法,视图类会自动调用父类的方法。

④ 自定义

在 ModelViewSet 中,继承了多个 mixin 类,而这些类又分别封装了不同的对应于增删改查的方法,因此如果想要自定义一个接口,实现部分 http 方法,就可以根据需要继承不同的 mixin 类

mixins.CreateModelMixin

mixins.RetrieveModelMixin

mixins.UpdateModelMixin

mixins.DestroyModelMixin

mixins.ListModelMixin

下一篇
举报
领券