前言
之前定义路由的urls.py
中的代码,太多太繁了,是否有类库能够自动生成呢?
from django.urls import path
from projects import views
urlpatterns = [
# 没有id的url
path('project/', views.ProjectsViewSet.as_view({
# 请求方式和action的映射
'get': 'list',
'post': 'create'
}), name='projects_list'),
# 带id的url
path('project/<int:pk>/', views.ProjectsViewSet.as_view({
# 请求方式和action的映射
'get':'retrieve',
'put': 'update',
'delete':'destroy'
}), name='project_detail'
)]
DRF
的routers
routers
有两个路由对象:SimpleRouter
、DefaultRouter
,两个都能生成路由,只不过后者会把所有生成的路由展示在前端页面的同时,还能进行一些简单操作
SimpleRouter
1、使用:urls.py
:
from django.urls import path, include
from projects import views
# 1.导入routers
from rest_framework import routers
# 2.创建SimpleRouter路由对象
router = routers.SimpleRouter()
# 3.注册路由
# 第一个参数prefix为路由前缀,一般添加为应用名称即可
# 第二个参数viewset为视图集「不要加as_view」
router.register(r'projects',views.ProjectsViewSet)
# 第一种使用方法
# urlpatterns = [
# # 将自动生成的路由添加到列表中
# path('',include(router.urls))
# ]
# 第二种使用方法
urlpatterns = []
urlpatterns += router.urls
2、启动项目,然后进入127.0.0.1:8000
即可在前端查看生成的路由地址(如果使用的DefaultRouter
,还可进入路由列表展示页,对接口进行简单的操作)
网友评论