Python Django-URL抛出的反向解析';NoReverseMatch';
我在url.py中有Python Django-URL抛出的反向解析';NoReverseMatch';,python,django,Python,Django,我在url.py中有url(r'^topics/(?p\d+)/$),views.topic,name='topic'),但当我尝试转到localhost:8000/topics/1时,它告诉我它尝试了一种模式:topics/(?p**\\\\**d+)/$ 我想应该是主题/(?P**\**d+/$ 我正在使用一本名为《Python速成课程》(第一版)(第18章)的书。 这是一个使用Django 1.11和Python的本地服务器。我已经尝试了很多对url模式的重新格式化,但我对这方面还不熟悉,
url(r'^topics/(?p\d+)/$),views.topic,name='topic')
,但当我尝试转到localhost:8000/topics/1时,它告诉我它尝试了一种模式:topics/(?p**\\\\**d+)/$
我想应该是主题/(?P**\**d+/$
我正在使用一本名为《Python速成课程》(第一版)(第18章)的书。
这是一个使用Django 1.11和Python的本地服务器。我已经尝试了很多对url模式的重新格式化,但我对这方面还不熟悉,所以我不知道还能做什么
。。。
URL模式=[
url(r'^$',views.index,name='index'),
#显示所有主题。
url(r“^topics/$”,views.topics,name='topics'),
#单个主题的详细信息页。
url(r“^topics/(?P\d+/$”,views.topic,name='topic'),
]
我希望它弹出正确的页面,但它总是说“NoReverseMatch at/topics/01/”,所以你忘记了URL末尾的尾随斜杠,因此它不匹配 您可以从正则表达式中删除斜杠,但这将改变问题:如果您添加斜杠,它将不起作用 我想您可以用
/?$
结束模式,但这里有一个可能更健壮的解决方案:
基本上:
检查settings.py文件中的追加斜杠设置
localhost:8000/topics/1
你没有忘记后面的斜杠吗?对不起,是的,我忘记了。