django_rest_framework—路由器机制
需求描述:假如action方法有很多,6個路由條目都需要一一映射,再加上自定義的一些action方法,會麻煩。能不能自動生成路由條目,不需要自己定義。
步驟:
1、使用SimpleRouter創建路由器對象
router=routers.SimpleRouter()
2、使用路由器對象調用register方法進行注冊
router.register(r’projects’,ProjectViewSet);第一個參數為路由前綴,第二個參數為視圖集類
3、在urlpatterns列表中,生成路由條目
from django.urls import path,include
方式一:path(’’,include(router.urls));路由器對象.urls屬性可獲取生成的路由條目
方式二:router.urls為列表 urlpatterns+=router.urls
注意:
1、可以使用路由器對象,只能為視圖集類自動生成路由條目
2、路由器對象默認只為通用action(create、list、retrieve、update、destroy)方法生成路由條目,自定義的action不會生成路由條目;
3、必傳參數prefix指定路由前綴、viewset指定視圖集類,不可調用as_view
4、DefaultRouter與SimpleRouter的區別:功能類似,僅有的區別:DefaultRouter會自動生成一個根路徑(顯示獲取數據的路口)
需求:我想要使用路由機制去為自定義的路由生成路由條目
導入:from rest_framework.decorators import action
1、如果需要使用路由器機制自動生成路由條目,那么就必須得使用action裝飾器
2、methods指定需要使用的請求方法,如果不指定,默認為GET
3、detail指定是否為詳情接口,是否需要傳遞當前模型的pk值
如果需要傳遞當前模型的pk值,那么detail=True,否則detail為False
4、url_path指定url路徑,默認為action方法名稱,一般不需要指定
5、url_name指定url路由條目名稱后綴,默認為action方法名稱,一般不需要指定。
總結
以上是生活随笔為你收集整理的django_rest_framework—路由器机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于sendinput() insert
- 下一篇: python基础高频_面试题(一)