路由设置和请求重定向
一. 路由配置 (URL配置)
1. 路由配置之 - include函数的使用:
使主路由内包含子路由,使用include来指明子路由的位置
完整格式为:
path('XXX/', include('app_name.urls_file_name'), namespace='app_name')
app_name - 应用名称
urls_file_name - app中包含路由的文件名称,即子路由文件名称
namespace - 命名空间,避免不同应用中的路由使用了相同的名字而发生冲突,所以使用命名空间区分开来
例子:
path('tourists/', include(('users.urls'), namespace='users'))
注意:namespace可以缺省,缺省时,默认为app_name
2. 路径结尾斜线
Django定义路由时,无论是主路由还是子路由,通常以斜线结尾,此时若用户访问不主动加斜线 “/” Django会自动重定向到包含斜线的路径上,而不会返回404
类似如:
urlpatterns = [
url(r'^index/$', views.index, name='index'),
]
用户访问 index 或者 index/ 网址,均能访问到index视图。
二. 请求重定向
Django 2.X中reserve的使用
- 对于未指明namespace的,reverse(urls_path_name)
- 对于指明namespace的,reverse(namespace_name:urls_path_name)
urls_path_name 为app的子路由
中path对应的name=‘xxx’
namespace 为主路由
中path对应的namespace=‘xxx’