django url正则表达式在url中重复

django url正则表达式在url中重复,django,url,Django,Url,如果我创建URL urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^about/',views.about , name = 'about'), url(r'^rango/',views.index, name = 'index'), ) 链接127.0.0.1:8000/about和127.0.0.1:8000/about/about/将引导您进入同

如果我创建URL

urlpatterns = patterns('',     
     url(r'^admin/', include(admin.site.urls)),
     url(r'^about/',views.about , name = 'about'),
     url(r'^rango/',views.index, name = 'index'),
)
链接
127.0.0.1:8000/about
127.0.0.1:8000/about/about/
将引导您进入同一页面,不是吗?我怎样才能阻止它?我只想要

domain-name/about/  
任何(
/about/about/about/…
)都应该是无效页面。

在末尾添加$

url(r“^about/$”,views.about,name='about')


一般来说,
about/anything/
也会匹配。
$
表示字符串的结尾(或者在本例中为url),就像
^
表示字符串的开头一样。检查
r'^about/'
仅检查url是否以
about/
开头,而不是以其结尾


这通常是您在包含另一个url配置时想要的行为,如
admin/
。在这种情况下,模式不应该在
admin/
之后结束,但应该有另一部分与包含文件中配置的url相匹配。但是,如果您的模式是单个视图,则通常希望url在模式结束后结束,这就是您包含
$
的时候,例如
r'^about/$

但这意味着我可以把任何东西放在域名后面,后跟/about/会得到相同的结果吗?看起来不太好,是吗?@SaurabhKumarKarn如果你不包括
$
-是的。当您包括另一个url配置时,例如
admin/
,它只是部分匹配,而
$
包含在与实际页面匹配的最后一个模式中。