zoukankan      html  css  js  c++  java
  • django-drf框架自带的路由以及最简化的视图

    0910自我总结

    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方法其他也类似
            .....
    
  • 相关阅读:
    每日日报
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    JAVA日报
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11497730.html
Copyright © 2011-2022 走看看