django drf框架自带的路由及最简化的视图
作者:小小咸鱼YwY
这篇文章主要介绍了django-drf框架自带的路由以及最简化的视图,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
django-drf框架自带的路由以及最简化的视图,具体内容如下所示:
路由
一.导入模块
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 = [ url(r'^cars/$', views.CarModelViewSet.as_view()), url(r'^cars/(?P<pk>.*)/$', views.CarModelViewSet.as_view()), ]
视图
一.导入模块
from rest_framework.viewsets import ModelViewSet
二.创建视图逻辑
ModelViewSet源码
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框架自带的路由及最简化的视图,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!