我正在创建一个视图,显示当前日期和时间偏移一定的小时数。目标是为页面/时间/加/ 1设计一个站点/以一小时显示日期和时间,页面/时间/加/ 2 /显示两小时内的日期和时间,页面/时间/加/ 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应该显示错误“找不到页面”否则。 URL http://127.0.0.1:8000/time/plus/(no hours)
也应该抛出404错误。但是,当我运行服务器并尝试访问http://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.
我犯的错误是什么?我看到正则表达式看起来正确
答案 0 :(得分:3)
您的网址格式应为
url(r'^time/plus/(\d{1,2})/$', hours_ahead),
您忘记了\
之前的d