99d*_*han 13 python regex django django-urls
django中以下两个url模式有什么区别?
url(r'^$', views.indexView, name='index'),
url(r'', include('registration.urls'))
Run Code Online (Sandbox Code Playgroud)
据我所知,'^ $'和''引用一个空字符串.'^ $'和''实际指定了什么?
Rah*_*pta 27
在正则表达式中,^
并且$
是特殊字符.
^
(尖):
^
匹配字符串的开头.
让我说我的正则表达式^a
,然后正则表达式将a
在字符串的开头寻找:
'a' # Matches 'a' in 'a'
'abc' # Matches 'a' in 'abc'
'def' # Not match because 'a' was not at the beginning
Run Code Online (Sandbox Code Playgroud)
$
(美元符号):
$
匹配字符串的结尾.
如果我的正则表达式是b$
,那么它将b
在字符串的末尾匹配:
'b' # Matches 'b' in 'b'
'ab' # Matches 'b' in 'ab'
'abc' # Does not match
Run Code Online (Sandbox Code Playgroud)
使用r'^$'
:
使用两者^
和$
一起^$
将匹配空行/字符串.
url(r'^$', views.indexView, name='index')
Run Code Online (Sandbox Code Playgroud)
当Django遇到一个空字符串时,它将转到该index
页面.
使用r''
:
当您使用时r''
,Django将在URL中的任何位置查找空字符串,这对于每个URL都是如此.
所以,如果你的urlpattern是这样的:
url(r'', views.indexView, name='index')
Run Code Online (Sandbox Code Playgroud)
您的所有网址都会转到index
页面.
^$
意味着开始和结束之间没有任何东西...... 这只匹配空字符串
''
表示一个空字符串(但没有指定任何关于整个字符串的开头或结尾的内容)所以当你遇到字符串中的任何内容时,它会说匹配'asdasd'
例如在开头有一个匹配的空字符串...剩下的是通过的到新的url规则脚本(在这种情况下,一切都保留)
如果相反,你的第二个规则就是'a'
匹配第一个a asdasd
并传递sdasd
给新的url匹配规则集
免责声明,这可能是一个粗略的过度简化,但基本上是正确的
归档时间: |
|
查看次数: |
10944 次 |
最近记录: |