Django url 不匹配,尽管它应该匹配

发布于 2024-09-17 01:26:04 字数 723 浏览 7 评论 0原文

在浏览器中我得到: 请求URL:http://xxxxxx:8000/person/test/

使用person中定义的URLconf .urls,Django 按照以下顺序尝试了这些 URL 模式:
^人/^$
^person/ ^person/(?P[-\w]+)/$
^admin/
当前 URL person/test/ 与其中任何一个都不匹配。

在 python shell 中我得到:
重新导入
url = 'person/test/'
pattern = re.compile(r'^person/(?P[-\w]+)/$'
re.match(pattern,url)
<_sre.SRE_Match object at 0xb7716860>

所以它显然应该与正则表达式匹配。 仅使用 url person/ (^$ 正则表达式)确实有效。

当然,我尝试过重新启动开发服务器。这里可能出了什么问题?

In browser I get:
Request URL: http://xxxxxx:8000/person/test/

Using the URLconf defined in person.urls, Django tried these URL patterns, in this order:
^person/ ^$
^person/ ^person/(?P<slug>[-\w]+)/$
^admin/
The current URL, person/test/, didn't match any of these.

In python shell I get:
import re
url = 'person/test/'
pattern = re.compile(r'^person/(?P<slug>[-\w]+)/$'
re.match(pattern,url)
<_sre.SRE_Match object at 0xb7716860>

So it obviously should match the regexp.
Using only url person/ (the ^$ regexp) does work.

I've tried restarting the development server of course. What could be wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

污味仙女 2024-09-24 01:26:04

它与 r'^person/(?P[-\w]+)/$' 不匹配,404 页面显示它与 r'^person 匹配/person/(?P[-\w]+)/$'

您可能在 urls.py 中匹配了 ^person/,然后导入了另一个 urls.py并将“人”也放在那里。从第二个 urls.py 中删除它。导入后,辅助 urls.py 只需匹配 URL 的其余部分,而不是整个 URL。

It isn't matching against r'^person/(?P<slug>[-\w]+)/$', the 404 page shows that it's matching against r'^person/person/(?P<slug>[-\w]+)/$'

You've probably matched ^person/ in a urls.py, then imported another urls.py and put "person" in there also. Remove it from the second urls.py. After importing, a secondary urls.py only has to match the rest of the URL, not the whole URL.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文