Django DRF框架路由注册与ModelViewSet视图详解
本文详细介绍Django REST framework中SimpleRouter的初始化与路由注册流程,解析router.register的使用方法及等效的手动URL配置。同时深入剖析ModelViewSet的源码结构,说明其如何通过Mixin类封装增删改查等通用视图逻辑,帮助开发者快速构建标准API接口。
Django REST framework(DRF)框架内置了便捷的路由机制及简化的视图类,具体内容如下所示:
DRF路由配置详解
路由配置
一.导入模块
SimpleRouter初始化与注册
from rest_framework.routers import SimpleRouter
二.初始化路由对象
路由注册等效的手动配置
router = SimpleRouter()
三.创建路由
router = SimpleRouter()
# 注册各种接口路由
router.register('cars', views.CarModelViewSet, base_name='car')
#car为链接的开头,views.CarModelViewSet为当路由为cars的时候的调用的函数
urlpatterns = []
urlpatterns.extend(router.urls)
其效果等同于手动配置URLpatterns
urlpatterns = [
url(r'^cars/$', views.CarModelViewSet.as_view()),
url(r'^cars/(?P<pk>.*)/$', views.CarModelViewSet.as_view()),
]
ModelViewSet视图类解析
视图类
一.导入模块
ModelViewSet源码结构
from rest_framework.viewsets import ModelViewSet
二.创建视图逻辑
ModelViewSet源码解析
Mixin方法封装与使用
class ModelViewSet(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet):
#所有他当中以及对于get等等的方法自动进行了封装
mixins是在generics再进行方法的分装成5个方法
RetrieveModelMixin:retrieve 单取
ListModelMixin:list 群取
CreateModelMixin:create 单增
UpdateModelMixin:update 单整体改
UpdateModelMixin: partial_update 单局部改
DestroyModelMixin:destroy 单删
class CarModelViewSet(ModelViewSet):
queryset = models.Car.objects.filter(is_delete=False)
serializer_class = serializers.CarModelSerializer
........
#queryset serializer_class 必须给与
...
def get(self):
他会调用retrieve或者list方法其他也类似
.....
总结
以上所述是小编给大家介绍的django drf框架自带的路由及最简化的视图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













