日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

视图集及路由

發布時間:2023/12/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视图集及路由 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

視圖集是什么?

是一群邏輯操作的功能合集,并采用路由映射的方法進行功能選擇

ModelViewSet

繼承GenericAPIView,并包括用于各種動作實現方式,需要指定數據

1. ModelViewSet視圖集功能及路由映射
# 使用ModelViewSet實現增刪查改操作 from rest_framework.viewsets import ModelViewSet class PeopleViewSet(ModelViewSet):queryset = People.objects.all() # 指定查詢結果集serializer_class = PeopleSerializer2 # 指定序列化器
2.路由映射
path('people2/',views.PeopleViewSet.as_view({'get':'list','post':'create'})),path('people2/<int:pk>/',views.PeopleViewSet.as_view({'get':'retrieve','put':'update','delete':'destroy'})),

DRF路由映射

簡化路由

DefaultRouter路由生成

功能更強大,訪問路由.json可以直接看到json格式返回

# 1.生成路由對象 router = routers.DefaultRouter() # 2.使用路由對象生成路由 # 參數:1.路徑名 2.調用視圖集 3.給生成的路由起個名 router.register('people3',views.PeopleViewSet,'people3') # 3.路由追加 urlpatterns += router.urls

生成的路由

[<URLPattern '^people3/$' [name='people3-list']>, <URLPattern '^people3\.(?P<format>[a-z0-9]+)/?$' [name='people3-list']>, <URLPattern '^people3/(?P<pk>[^/.]+)/$' [name='people3-detail']>,<URLPattern '^people3/(?P<pk>[^/.]+)\.(?P<format>[a-z0-9]+)/?$' [name='people3-detail']>, <URLPattern '^$' [name='api-root']>, <URLPattern '^\.(?P<format>[a-z0-9]+)/?$' [name='api-root']> ]
SimplaeRouter路由生成

注冊路由

# 1.生成路由對象 router = routers.SimpleRouter() # 2.使用路由對象生成路由 # 參數:1.路徑名 2.調用視圖集 3.給生成的路由起個名 router.register('people3',views.PeopleViewSet,'people3') # 3.路由追加 urlpatterns += router.urls print(router.urls)

生成的路由

[ <URLPattern '^people3/$' [name='people3-list']>, <URLPattern '^people3/(?P<pk>[^/.]+)/$'[name='people3-detail']> ]
兩種路由生成方式區別
  • SimpleRouter`:最基本的路由映射方式,只會將視圖集具備的混入類功能進行路由的生成
  • DefaultRouter:更加高級,包含有drf根頁面的路由,不只是視圖集所包含的視圖部分

總結

以上是生活随笔為你收集整理的视图集及路由的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。