【资料图】
- 路由层
- 1.路由匹配
- 2.转换器详
- 3.正则匹配
- 4.正则分组
- 5.反向解析
路由层
1.路由匹配
django2.X及以上 path第一个参数写什么就匹配什么django1.X第一个参数是正则表达式无论什么版本django都自带加斜杠后缀的功能 也可以取消配置文件中 APPEND_SLASH = False
2.转换器详
1.str:匹配除路径分隔符外的任何非空字符串2.int:匹配0或任意正整数3.slug:匹配任意一个由字母或数字组成的字符串4.uuid:匹配格式化后UUID5.path:匹配完整的URL路径
3.正则匹配
django2.X及以上版本有re_path 第一个参数是正则匹配的本质是只要第一个正则表达式能够从用户输入的路由中匹配到数据就算匹配成功会立刻停止路由层其他的匹配直接执行对应的视图函数re_path("^test/$", views.test)django1.X路由匹配使用的是url()功能与django2.X及以上的re_path()一致
4.正则分组
正则匹配无名分组
re_path("^test/(\d{4})/", views.test)会将括号内正则匹配到的内容当做位置参数传递给视图函数
正则匹配有名分组
re_path("^test/(?P\d{4})/", views.test)会将括号内正则匹配到的内容当做关键字参数传递给视图函数
5.反向解析
基本使用
1.路由匹配关系起别名path("login001/", views.login, name="login_view")2.反向解析语法html页面上模板语法{% url "login_view" %}后端语法 reverse("login_view")
动态路由的反向解析
path("func1//", views.func1_func, name="func1_view")html页面上模板语法 {% url "func1_view" "jason" %}后端语法 reverse("func1_view", args=("嘿嘿嘿",))