+-
DRF中DefaultRouter和SimpleRouter区别
首页 专栏 python 文章详情
0

DRF中DefaultRouter和SimpleRouter区别

ponponon 发布于 5 月 3 日

路由注册

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

python django
阅读 91 发布于 5 月 3 日
举报
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
养鸡场的Python road
Python来自荷兰,面向未来
关注专栏
avatar
ponponon

喜欢科技

46 声望
11 粉丝
关注作者
0 条评论
得票数 最新
提交评论
avatar
ponponon

喜欢科技

46 声望
11 粉丝
关注作者
宣传栏
目录

路由注册

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