文章目录
1 ViewSet
1.1 视图集是什么
是视图的简单逻辑操作功能的集合,直接使用功能名来命名
1.2 action是什么
视图里不会再有‘get’,‘post’等方法,直接用viewsets的功能命名,再到路由里进行映射
from rest_framework import viewsets
1.3 视图集功能实现及路由映射
再路由里的 as_view()里进行映射
path('people/',views.PeopleViewSet.as_view({'get':'list','post':'create'})),
path('people/<int:pk>/',views.PeopleViewSet.as_view({'get':'retrieve','put':'update','delete':'destroy'})),
2. ModelViewSet
2.1 混入类的视图集概念
各种功能的混合
2.2 ModelViewSet视图集功能及路由映射
from rest_framework.viewsets import ModelViewSet
class PeopleViewSet(ModelViewSet):
queryset = People.objects.all()
serializer_class = PeopleSerializer2
2.3 视图集自定义功能及路由映射
from django.urls import path
from myapp import views
urlpatterns = [
path('people/',views.PeopleViewSet.as_view({'get':'list','post':'create'})),
path('people/<int:pk>/',views.PeopleViewSet.as_view({'get':'retrieve','put':'update','delete':'destroy'})),
]
3 DRF路由映射
3.1 DefaultRouter路由生成
from myapp import views
from rest_framework import routers
#创建路由对象
router = routers.DefaultRouter()
#使用路由对象,生成路由
# 参数 路径名 视图集 给生成的路由定义一个名字
router.register('people',views.PeopleViewSet,'people')
#路由追加
urlpatterns += router.urls
3.2 SimplaeRouter路由生成
from myapp import views
from rest_framework import routers
#创建路由对象
router = routers.SimplaeRouter()
#使用路由对象,生成路由
# 参数 路径名 视图集 给生成的路由定义一个名字
router.register('people',views.PeopleViewSet,'people')
#路由追加
urlpatterns += router.urls
3.3 两种路由生成方式区别及根路由是什么
SimpleRouter
:基本的路由映射方式,只会将视图集具备的混入类功能进行路由的生成DefaultRouter
:比与SimpleRouter高级,不只会生成视图集的混入类功能的路由,也会生成drf艮页面的路由