我正在创建一个视图,显示当前日期和时间偏移一定小时数。目标是设计一个站点,页面 /time/plus/1/ 以一小时显示日期和时间,页面 /time/plus/2/ 以两小时显示日期和时间,页面 /time/ plus /3/ 以三小时为单位显示日期和时间,依此类推。这是我在views.py 中的函数:
def hours_ahead(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "In %s hour(s), it will be %s." % (offset, dt)
return HttpResponse(html)
这是我的 url.py 文件的内容:
from django.conf.urls import patterns, include, url
from aplicacion1.views import hours_ahead
urlpatterns = patterns('',
url(r'^time/plus/(d{1,2})/$', hours_ahead),)
views.py 中的模式应该只接受一位或两位数字,否则 Django 应该显示错误“找不到页面”。该 URLhttp://127.0.0.1:8000/time/plus/(no hours)
还应该引发 404 错误。但是当我运行服务器并尝试访问类似的 URLhttp://127.0.0.1:8000/time/plus/24/
时,告诉我以下错误:
Page not found (404)
Request Method: GET
Request URL:
http://127.0.0.1:8000/time/plus/24/
Using the URLconf defined in cibernat.urls, Django tried these URL patterns, in this order:
^$
^time/$
^time/plus\d+/$
^admin/doc/
^admin/
The current URL, time/plus/24/, didn't match any of these.
我犯了什么错误?我看到正则表达式看起来正确