为什么在'$'后面包含'/'的网址会返回Page Not Found Error(404)

时间:2017-10-03 10:11:04

标签: django url-routing

我遇到了Django网址格式的问题。

当我在索引URL的末尾添加'/'时,该页面返回404错误(找不到页面),如果我从URL的末尾删除'/',那么页面工作正常。< / p>

管理页面的网址无法重现此问题,有人可以解释发生了什么吗?

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$/',index),
]

4 个答案:

答案 0 :(得分:4)

$:表示字符串的end,因此,之后的生活没有可能性。

  

匹配字符串的结尾或者在结尾处的换行符之前   字符串

^匹配字符串的开头,因此,根^$中的urls.py表示Django:除了域/我之外,我不想要任何内容基本名称然后Django会将请求路由到您的索引页面。

答案 1 :(得分:2)

url django.conf.urls包接受正则表达式作为第一个参数的方法

$代表正则表达式中字符串的 end ,因此之后的任何字符都不会被视为与url字符串匹配。

答案 2 :(得分:0)

据我所知,在django网址中:

&#39; $&#39; :字符串的结尾,这是在正则表达式中使用

&#39; ^&#39; :它也用于正则表达式匹配url的起始

答案 3 :(得分:-1)

在网址模式中不会考虑 $ 之后的字符 因此改为:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^/$',index),
]