Django路由系统

1.url是全球统一资源定位符


image.png

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 常用的装换器:

  1. str 匹配除了‘/'路径分隔符之外的所有字符串

  2. int 匹配任意整数

  3. slug 匹配任意ascii字符 加上连字符和下划线

  4. uuid 格式化id

  5. path 匹配任意非空字符

使用正则表达式 re_path(route, view, kwargs=None, name=None) python 中 正则表达式的分组命名 (?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名称

你可能感兴趣的:(Django路由系统)