Django:从URL捕获数据不起作用

时间:2012-08-08 03:44:34

标签: python django

我的URL.py文件中有以下语句

(r'^confirm/(\d+)/$', confirm)

但是这个网址

http://127.0.0.1:8000/confirm/DMo32zPB15

返回此

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/confirm/DMo32zPB15
Using the URLconf defined in BBN.urls, Django tried these URL patterns, in this order:
^login/$
^ajax/login$
^ajax/login/nact/$
^ajax/login/nact/cancel//$
^ajax/login/nact/resend/$
^confirm/(\d+)/$
The current URL, confirm/DMo32zPB15, didn't match any of these.
You're seeing this error because you have DEBUG = True in your Django settings file Change that to False, and Django will display a standard 404 page.

为什么不会重新识别网址?

2 个答案:

答案 0 :(得分:4)

\d+表示一个或多个数字

DMo32zPB15有数字和字母。请改为r'^confirm/([a-zA-Z0-9]+)/$'

有关正则表达式的更多信息,请访问http://www.regular-expressions.info以获取您的阅读乐趣。

答案 1 :(得分:3)

这与您关于\d+的其他问题有关。 \d+仅匹配数字。您的URL包含不是数字的内容(如字母)。您应该看看我在回答您的其他问题时链接的正则表达式教程,并在尝试使用它们编写URL匹配器之前掌握正则表达式。