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少了不少URLPAtternrest