Django框架中的URL分发采用正则表达式匹配来进行,以下是正则表达式的基本规则:
官方演示代码:
from django.conf.urls import url from . import views urlpatterns = [ url(r"^articles/2003/$", views.special_case_2003), url(r"^articles/([0-9]{4})/$", views.year_archive), url(r"^articles/([0-9]{4})/([0-9]{2})/$", views.month_archive), url(r"^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$", views.article_detail), ]
注意:
不需要在前面加上‘/"(slash),举个栗子,要写成"^articles", 而不是" ^/articles"。
在之前的"r"字母告诉Pyhton解释器这个String是一个“raw”— 原始字符串
注:
Python中原始字符串(raw)的产生正是由于有正则表达式的存在。原因是ASCII 字符和正则表达式特殊字符间所产生的冲突。比如,特殊符号“b”在 ASCII 字符中代表退格键,但同时“b”也是一个正则表达式的特殊符号,代表“匹配一个单词边界”。
为了让RE 编译器把两个字符“b”当成你想要表达的字符串,而不是一个退格键,你需要用另一个反斜线对它进行转义,即可以这样写:“b”。
但这样做会把问题复杂化,特别是当你的正则表达式字符串里有很多特殊字符时,就更容易令人困惑了。在第六章,我们曾介绍过原始字符串,它经常被用于简化正则表达式的复杂程度。事实上,很多Python 程序员在定义正则表达式时都只使用原始字符串。
在django中url正则表达式匹配的方法|在Django中URL正则表达式匹配的方法
http://m.bbyears.com/aspjiaocheng/159231.html
推荐访问: