django url正则表达式在url中重复
如果我创建URLdjango 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/将引导您进入同
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/
,它只是部分匹配,而$
包含在与实际页面匹配的最后一个模式中。