为什么在 '$' return 之后包含 '/' 的 URL 会出现找不到页面错误 (404)
Why does a URL containing '/' after a '$' return a Page Not Found Error (404)
我遇到 Django URL 模式的问题。
当我在索引 URL 的末尾添加“/”时,页面 returns 出现 404 错误(未找到页面)并且如果我从末尾删除“/”的 URL 那么页面工作正常。
管理页面的 URL 无法重现该问题,有人可以解释这是怎么回事吗?
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$/',index),
]
$
:代表字符串的end,所以,后面不可能有一个字符living。
Matches the end of the string or just before the newline at the end of
the string
^
匹配字符串的开头,所以根 urls.py
中的 ^$
对 Django 意味着:我不想要任何东西 URL 除了域名/基本名称 然后 Django 会将请求路由到您的索引页面。
url django.conf.urls
包的方法接受正则表达式作为第一个参数
$
在正则表达式中表示字符串的 end 因此之后的任何字符都不会被视为匹配 url 字符串。
$ 之后的任何字符都不会被考虑在 url 模式中
因此将其更改为:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^/$',index),
]
据我了解,在 django urls:
'$' : 字符串结尾,这是在正则表达式中使用
'^' :它也用于正则表达式匹配 url
的开始
我遇到 Django URL 模式的问题。
当我在索引 URL 的末尾添加“/”时,页面 returns 出现 404 错误(未找到页面)并且如果我从末尾删除“/”的 URL 那么页面工作正常。
管理页面的 URL 无法重现该问题,有人可以解释这是怎么回事吗?
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$/',index),
]
$
:代表字符串的end,所以,后面不可能有一个字符living。
Matches the end of the string or just before the newline at the end of the string
^
匹配字符串的开头,所以根 urls.py
中的 ^$
对 Django 意味着:我不想要任何东西 URL 除了域名/基本名称 然后 Django 会将请求路由到您的索引页面。
url django.conf.urls
包的方法接受正则表达式作为第一个参数
$
在正则表达式中表示字符串的 end 因此之后的任何字符都不会被视为匹配 url 字符串。
$ 之后的任何字符都不会被考虑在 url 模式中 因此将其更改为:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^/$',index),
]
据我了解,在 django urls:
'$' : 字符串结尾,这是在正则表达式中使用
'^' :它也用于正则表达式匹配 url
的开始