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