路由注册

DRF的视图被称为ViewSet,而不是Django中的View

传统的Django注册路由是通过FBV或者CBV形式。

from django.urls import include, pathfrom appname import viewsurlpatterns = [    path('',views.funcname),    path('/login',views.Classname.as_view()),]

然而DRF编写的ViewSet不是间接写在urlpatterns中,而是通过router注册的模式

from django.urls import include, pathfrom rest_framework import routersfrom apps.accounts.api import viewsrouters.SimpleRouterrouter = 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形式注册api

讲完了DRF的api注册形式,就能够来讲讲DefaultRouter和SimpleRouter区别.

除了手动注册的路由之外还会增加默认的 / 门路,还有一个format的问题。

应用DefaultRouter

应用SimpleRouter

相比拟DefaultRouter,SimpleRouter少了很多URLPAttern