from rest_framework.routers import SimpleRouter
python
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方法其余也相似 .....