1.url是全球统一资源定位符
2.django的路由系统
当一个请求来到时
1.首先到项目目录下的urls.py (根URLconf模块)中,查找路由规则
2.根URLconf模块,里面定义了 urlpatterns 变量
3.urlpatterns 是一个(django.urls.path,django.urls.re_path 对象)列表
4.按顺序运行每个url模式,在第一个匹配的模式停止
5.一旦匹配,django导入并调用给定的视图
6.如果中间出错,或者没有匹配到,返回404
-path(route, view, kwargs=None, name=None)
- route 是一个字符串的url规则
- view 是个视图
- kwargs 额外参数,传递给view,必须是一个字典
- name url的命名
在url中捕获参数 在url规则中使用<变量名>
可以捕获url中的值 传递给视图 ** 捕获的值是 字符串
路径转换器 案例:int:pk 常用的装换器:
str 匹配除了‘/'路径分隔符之外的所有字符串
int 匹配任意整数
slug 匹配任意ascii字符 加上连字符和下划线
uuid 格式化id
path 匹配任意非空字符
使用正则表达式 re_path(route, view, kwargs=None, name=None) python 中 正则表达式的分组命名 (?<name>pattern)
django 搜索 url 搜索的是什么? 只搜索路径部分,跟参数,以及请求方法(get,post)无关
同一个url 可以匹配 get, post
包含其他URLconfs include
传递额外参数 path,re_path 方法中,传递一个kwargs 的字典参数
***** 当kwargs 中的key 与 url捕获中的key 一致的时候,以kwargs为准
url 命名 页面重定向 ,跳转页面 登录之后, 某个操作之后
app_name 定义在 app文件夹下的urlconf模块中 app_name = app名称