1 继承了ViewSetMixin及其子类,路由写法变了
-写法一:
path('publish', views.PublishView.as_view({'get': 'lqz','post':'login'})),
-写法二:自动生成
- 第一步:导入一个路由类
from rest_framework.routers import SimpleRouter, DefaultRouter
- 第二步:实例化得到对象
router=SimpleRouter()
# router = DefaultRouter() # 它会给每个注册的视图类都生成一个根路由
# 第三步:注册路由---》使用视图类注册---》能自动生成路由
router.register('books', views.BookView, 'books')
router.register('publish', views.BookView, 'publish')
# 第四步:在总路由中注册 方式二
path('', include(router.urls)),
# 第四步:在总路由中注册 方式一
# urlpatterns+=router.urls
action装饰器的用法
-之前自动生成路由只能生成
{'get': 'list', 'post': 'create'},{'get': 'retrieve', 'put': 'update', 'delete': 'destroy'}
-使用action装饰器来做对应关系
methods:请求方式
detail:
False:是不是带id的路由 http://127.0.0.1/publish/3 http://127.0.0.1/publish
True: 生成的路由publish/pk/lqz/
url_path:如果不写,就是函数名生成的路径是:http://127.0.0.1/publish/lqz
url_name:别名