DRF中DefaultRouter和SimpleRouter區別

路由註冊

DRF的視圖被稱爲ViewSet,而不是Django中的Viewpython

傳統的Django註冊路由是經過FBV或者CBV方式。django

from django.urls import include, path
from appname import views

urlpatterns = [
    path('',views.funcname),
    path('/login',views.Classname.as_view()),
]

可是DRF編寫的ViewSet不是直接寫在urlpatterns中,而是經過router註冊的形式api

from django.urls import include, path
from rest_framework import routers
from apps.accounts.api import views

routers.SimpleRouter

router = routers.SimpleRouter()
router.register(r'api/users', views.UserViewSet)
router.register(r'api/accounts', views.AccountViewSet, basename='accounts')

urlpatterns = [
    path('', include(router.urls)),
]

先聲明一個Router類的實例,而後再這個router中調用register方式註冊apiapp

講完了DRF的api註冊方式,就能夠來說講DefaultRouter和SimpleRouter區別.url

除了手動註冊的路由以外還會添加默認的 / 路徑,還有一個format的問題。spa

使用DefaultRouter

使用SimpleRouter

相比較DefaultRouter,SimpleRouter少了不少URLPAtternrest

相關文章
相關標籤/搜索