【python-Django】1.路由系统

Django-路由系统

url的含义
在这里插入图片描述
-处理请求
当一个请求来到时
 1.首先找到项目目录下的urls.py(根URLconf模块)中,查找路由规则
 2.根据URLconf模块,里面定义了urlpatterns变量
 3.Urlpatterns是一个(djiango.urls.path,djiango.urls.re_path对象) 列表
 4.按顺序运行每一个url模式,在第一个匹配的模式停止
 5.一旦匹配成功,django导入并调用给定的视图
 6.如果中间出错,或者没有匹配到,返回404

请求处理过程图
【python-Django】1.路由系统_第1张图片
-path(route,views,kwargs=None,name=None)
-route 是一个字符串的url规则
-view 是一个视图
-kwargs 额外参数,传递给view,必须是一个字典
-name url的命名
【python-Django】1.路由系统_第2张图片
-在url中捕获参数
 在url规则中使用’<变量名>’可以捕获url中的值
 捕获的值是 字符串
【python-Django】1.路由系统_第3张图片
【python-Django】1.路由系统_第4张图片
-路径转换器
 案例:int:id
 常用的转换器
 -str 匹配除了’/’路径分割符之外的所有字符
 -int 匹配任意整数
 -slug 匹配任意ascii字符 加上连字符和下划线
 -uuid 格式化的id
 -path 匹配任意非空字符
在这里插入图片描述

-使用正则表达式re_path传参
 Python 正则表达式的分组命名 (?P表达式)
 按顺序传参 (表达式)
1.按顺序传入参数
【python-Django】1.路由系统_第5张图片
2.按变量名传入参数
在这里插入图片描述

-传递额外参数
 path re_path方法中传递一个额外的kwargs字典型参数
 当key的值和urls传的参数值一致时以额外参数为主
【python-Django】1.路由系统_第6张图片
【python-Django】1.路由系统_第7张图片
在include(‘xxx.urls’)引用的路由后面加额外参数,额外参数会传给urls下的每一个路径
【python-Django】1.路由系统_第8张图片
【python-Django】1.路由系统_第9张图片
-url命名
【python-Django】1.路由系统_第10张图片
【python-Django】1.路由系统_第11张图片

-django搜索url 搜索的是什么?
 只搜索路径部分 跟参数以及请求方法(get post)无关
 同一个url 可以匹配get post
-包含其他的URLconfs
【python-Django】1.路由系统_第12张图片

-重定向(目标地址跳转)
【python-Django】1.路由系统_第13张图片

你可能感兴趣的:(【python-Django】1.路由系统)