当前位置: 首页 > 后端技术 > Python

DRF中DefaultRouter和SimpleRouter的区别

时间:2023-03-25 20:11:11 Python

路由注册DRF的视图叫ViewSet,不是Django中的View。传统的Django注册路由是通过FBV或CBV。fromdjango.urlsimportinclude,pathfromappnameimportviewsurlpatterns=[path('',views.funcname),path('/login',views.Classname.as_view()),]但是DRF写的ViewSet不是直接写的在urlpatterns中以路由器注册的形式,fromdjango.urlsimportinclude,pathfromrest_frameworkimportroutersfromapps.accounts.apiimportviewsrouters.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说完了DRFAPI的注册方式,就可以说说DefaultRouter和SimpleRouter的区别了。除了手动注册的路由之外,默认的/路径也会加进去,而且还有一个格式问题。使用DefaultRouter使用SimpleRouter与DefaultRouter相比,SimpleRouter少了很多URLPAttern