+-
首页 专栏 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来自荷兰,面向未来
关注专栏
ponponon
喜欢科技
46 声望
11 粉丝
0 条评论
得票数 最新
提交评论
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