Django-路由系统
url的含义
-处理请求
当一个请求来到时
1.首先找到项目目录下的urls.py(根URLconf模块)中,查找路由规则
2.根据URLconf模块,里面定义了urlpatterns变量
3.Urlpatterns是一个(djiango.urls.path,djiango.urls.re_path对象) 列表
4.按顺序运行每一个url模式,在第一个匹配的模式停止
5.一旦匹配成功,django导入并调用给定的视图
6.如果中间出错,或者没有匹配到,返回404
请求处理过程图
-path(route,views,kwargs=None,name=None)
-route 是一个字符串的url规则
-view 是一个视图
-kwargs 额外参数,传递给view,必须是一个字典
-name url的命名
-在url中捕获参数
在url规则中使用’<变量名>’可以捕获url中的值
捕获的值是 字符串
-路径转换器
案例:int:id
常用的转换器
-str 匹配除了’/’路径分割符之外的所有字符
-int 匹配任意整数
-slug 匹配任意ascii字符 加上连字符和下划线
-uuid 格式化的id
-path 匹配任意非空字符
-使用正则表达式re_path传参
Python 正则表达式的分组命名 (?P表达式)
按顺序传参 (表达式)
1.按顺序传入参数
2.按变量名传入参数
-传递额外参数
path re_path方法中传递一个额外的kwargs字典型参数
当key的值和urls传的参数值一致时以额外参数为主
在include(‘xxx.urls’)引用的路由后面加额外参数,额外参数会传给urls下的每一个路径
-url命名
-django搜索url 搜索的是什么?
只搜索路径部分 跟参数以及请求方法(get post)无关
同一个url 可以匹配get post
-包含其他的URLconfs
-重定向(目标地址跳转)