我正在尝试遵循以下教程: https://djangobook.com/django-views-dynamic-content/
URL页面如下所示
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/$', hello),
url(r'^time/$', current_datetime),
url(r'^time/plus/(\d{1,2})/$', hours_ahead),
]
关联视图如下:
def hours_ahead(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
return HttpResponse(html)
但是,当我尝试访问如下所示的任何URL时,都会出现错误。 http://127.0.0.1:8000/time/plus/5/
我看到以下错误。我没有将浏览器URL的偏移量传递给视图。 在控制台中,它显示以下错误:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: hours_ahead() missing 1 required positional argument: 'offset'
[01/Oct/2018 13:29:12] "GET /time/plus/3/ HTTP/1.1" 500 62628
答案 0 :(得分:0)
您需要修改urls.py。
$ curl -fsSL "https://api.launchpad.net/1.0/ubuntu/+archive/primary?ws.op=getPublishedSources&source_name=rlwrap&exact_match=true&distro_series=https://api.launchpad.net/1.0/ubuntu/xenial" \
| jq --raw-output ".entries | .[0] | .source_package_version"
→ 0.41-1build1
答案 1 :(得分:0)
在进行了更多的阅读并且获得了上面的知识之后,我发现该路径更易读且易于执行。路径也是python 2.0中包含的更多python方式 https://docs.djangoproject.com/en/2.0/releases/2.0/#whats-new-2-0
第一个问题的答案比较容易
path('time/plus/<int:offset1>/', hours_ahead),
第二个答案是:
path('welcome/<name>/', welcome_name),