3、re_path的使用
使用re_path的情况:
请求路径是一个动态变化但有一定规律的时候导入的模块:from django.urls import re_path
在根路由的路由列表中设置一个动态的访问路径:以a开头,接着两个任意数字,再接着是两个任意单词字符,最后为一个反斜杠 /
当我们以c开头的请求路径进行访问时,会发现”出现找不到此路径“的提示,以a开头访问后才可访问到请求路径
然后添加two,回车,即可出现一个响应内容
三、路由命名与逆向解析重定向
1、路由命名与逆向解析
路由命名的作用:
可以根据命名来知道这个路由它的一个请求路径。
逆向解析:
需要用到reverse方法
from django.urls import reverse
根据路由命名来逆向出路由的请求路径
如果是访问的时候是根据路径来访问
如果是逆向解析的时候是根据名字来访问
在子路由的路由列表中,给一个路由命名,然后在路由列表中添加一个reverse的路由
- 接着在子应用中的view.py中,设置reverse方法,逆向到路由的路径
当我们访问根路由,通过路由转发,然后再访问子路由reverse,会返回一个名为“People”的路由的路径
2、命名空间和重定向
命名空间:
作用:为了避免不同的子应用中存在相同名字的路由的情况,导致进行逆向解析的时候发生冲突。
path('first/', include(('app_1.urls', 'app_1'), namespace='People')), include(('子路由分发路径', '子应用'), namespace='People')
重定向:
从一个页面到另一个页面
django中也是将重定向的方法封装好了的,直接导包使用即可
from django.shortcuts import redirect
1.重定向网址:return redirect("网址")
2.重定向路由:return redirect("/路由名/")
3.重定向路由反解析:
path = reverse(“命名空间namespace:路由name”)
return redirect(path)
在根路由的路由列表中,给一个路由设置命名空间
接着在子路由中给几个路由进行命名
- 然后在子应用的views.py的reverse_view函数中进行重定向
启动Django项目,在浏览器url中输入 user/reverse 后回车,回车后即可看见页面跳转