路由注册
DRF的视图被称为ViewSet,而不是Django中的View
传统的Django注册路由是通过FBV或者CBV形式。
from django.urls import include, path
from appname import views
urlpatterns = [
path('',views.funcname),
path('/login',views.Classname.as_view()),
]
然而DRF编写的ViewSet不是间接写在urlpatterns
中,而是通过router注册的模式
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形式注册api
讲完了DRF的api注册形式,就能够来讲讲DefaultRouter和SimpleRouter区别.
除了手动注册的路由之外还会增加默认的 /
门路,还有一个format的问题。
应用DefaultRouter
应用SimpleRouter
相比拟DefaultRouter,SimpleRouter少了很多URLPAttern
发表回复