drf之路由
1.SimpleRouter
### 自动生成路由
# 1导入一个路由类
from rest_framework.routers import SimpleRouter
# 2 实例化得到对象
router=SimpleRouter()
# 3 执行对象的方法
router.register('books',BookView,'books')
# 4 对象.属性 拿到值
print(router.urls)
urlpatterns = [
path('request/', RequestView.as_view()),
path('publish/', PublishView.as_view({'get': 'login'})),
]
# 5 把自动生成的路由,放到 urlpatterns中
urlpatterns+=router.urls
2.DefaultRouter
#1 认为跟SimpleRouter一样,正常跟SimpleRouter一样用
#2 多几条路由:都一样,知识有个api-root 不太一样
以后注册多了:router.register('books',BookView,'books')
能看到:{"books":"http://127.0.0.1:8000/app01/books/"}
3. 使用action装饰器定制详细路由
class PublishView(ViewSetMixin, GenericAPIView):
# get请求执行它 127.0.0.1:8000/app01/publish/login/
@action(methods=['GET'], detail=False)
def login(self, request):
return Response('sss')
4.总结
# 1 自动生成路由
SimpleRouter和DefaultRouter
# 2 action装饰器
# 3 视图类对象.action
标签:urlpatterns,books,SimpleRouter,action,router,路由,drf
From: https://www.cnblogs.com/Formerly/p/18194209