Day14-视图集及路由

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艮页面的路由
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值