# 1 导入路由类
from rest_framework.routers import SimpleRouter, DefaultRouter
# DefaultRouter生成的路由更多一点,多了一个根的路由(没有用)
# 2 实例化得到对象
router = SimpleRouter()
# 3 注册路由
router.register(‘books‘, views.BookView)
# 4 自动生成的路由
print(router.urls)
# 5.1 手动把自动生成的路径加入到urlpatterns
urlpatterns = [
path(‘api/v1/‘, include(router.urls)),
]
# 5.2 自动把自动生成的路径加入到urlpatterns
urlpatterns+=router.urls
‘‘‘
a=[1,2,3]
b=[4,5,6]
print(a+b)
>>> [1, 2, 3, 4, 5, 6]
‘‘‘
总结:ViewSetMixin+9个视图字类才能用自动生成路由
给自动生成路由的视图类再定制一些路由
from rest_framework.decorators import action
用法一:
# api/v1/books/sen_email/
@action(methods=[‘GET‘], detail=False)
def sen_email(self, request, *args, **kwargs):
print(args)
print(kwargs)
return APIResponse(msg=‘发送成功‘)
方法二:
# api/v1/books/1011/sen_email/
@action(methods=[‘GET‘], detail=True)
def sen_email(self, request, *args, **kwargs):
# pk=1011
print(args)
print(kwargs)
return APIResponse(msg=‘发送成功‘)
原文:https://www.cnblogs.com/shof/p/14720711.html