第61篇 Django 路由系统 正则表达式和二级路由 路由的命名和反向解析

Posted cavalier-chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第61篇 Django 路由系统 正则表达式和二级路由 路由的命名和反向解析相关的知识,希望对你有一定的参考价值。

1. 正则表达式


1. Django路由系统匹配URL路径的时候是从上到下按照注册顺序来的

1.1Django1.11 与Django2.0区别 以及过度转换

技术分享图片

 

技术分享图片

 


2. Django的路由系统只匹配URL路径,不匹配域名、端口、URL参数

技术分享图片

 

技术分享图片

 


3. 分组匹配 --> 相当于给视图函数传位置参数

技术分享图片

 


4. 分组命令匹配 --> 相当于给视图函数传关键字参数

技术分享图片

r‘^xxxx$‘ 

r一定要写上,代表里面的字符串是原始的字符串不需要转译

技术分享图片

 


5. 注意:
分组匹配和分组命名匹配不能混合使用!!!

6.匹配不成功是否自动添加/重新匹配

技术分享图片

 

技术分享图片

 

7. 视图函数中可以指定默认值,这个设计思想很重要,

技术分享图片

 

7. 二级路由

技术分享图片

 

技术分享图片

 

技术分享图片

 


2. 给URL匹配模式起名字
1. name=‘别名‘ --> 起别名的目的是为了反向解析URL的时候有依据
3. 通过名字反向解析
1. 在视图函数中:
from django.urls import reverse
reverse(‘别名‘, )

技术分享图片

 

技术分享图片

 

技术分享图片

 


2. 在模板html页面
{% url ‘别名‘ ‘参数1‘ ... %}

技术分享图片

 

技术分享图片

 

3.2

技术分享图片

技术分享图片

 


4. namespace模式
# 所有以app01开头的都交给app01/urls.py去处理
url(r‘^app01/‘, include(app01_urls, namespace=‘app01‘)),

技术分享图片

 


# 所有以xiayuhao开头的都交给app02/urls.py去处理
url(r‘^app02/‘, include(app02_urls, namespace=‘app02‘)), # app02/index/

技术分享图片

技术分享图片

技术分享图片

 




















以上是关于第61篇 Django 路由系统 正则表达式和二级路由 路由的命名和反向解析的主要内容,如果未能解决你的问题,请参考以下文章

61.Django04——Django路由层

Django路由系统(一)

30Python之web框架django进阶篇

Django:Django的路由系统

python 之 Django框架(路由系统include命名URL和URL反向解析命名空间模式)

Django进阶-路由系统