django-drf框架自帶的路由以及最簡化的視圖

0910自我總結

django-drf框架自帶的路由以及最簡化的視圖

路由

一.導入模塊

from rest_framework.routers import SimpleRouterpython

二.初始化路由對象

router = SimpleRouter()

三.建立路由

router = SimpleRouter()
# 註冊各類接口路由
router.register('cars', views.CarModelViewSet, base_name='car')
#car爲連接的開頭,views.CarModelViewSet爲當路由爲cars的時候的調用的函數
urlpatterns = []
urlpatterns.extend(router.urls)

其效果等同於django

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方法其餘也相似
        .....
相關文章
相關標籤/搜索