Python Django返回未找到映射URL的页面
我试图用Django呈现一个基本的html/css页面,但我无法让它工作。它的设置似乎与我的索引页面相同,但工作正常,404响应中的调试说明似乎表明它指向了正确的url。有没有想过为什么这不起作用 *我使用的是django 2.1,所以我使用的是path,而不是旧的正则表达式url映射 *html文件存在并位于templates\base\u app\our-story.html中 从views.py:Python Django返回未找到映射URL的页面,python,django,Python,Django,我试图用Django呈现一个基本的html/css页面,但我无法让它工作。它的设置似乎与我的索引页面相同,但工作正常,404响应中的调试说明似乎表明它指向了正确的url。有没有想过为什么这不起作用 *我使用的是django 2.1,所以我使用的是path,而不是旧的正则表达式url映射 *html文件存在并位于templates\base\u app\our-story.html中 从views.py: def OurStory(request): return render(reque
def OurStory(request):
return render(request, 'base_app/our-story.html')
从URL.py:
from base_app import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name='index'),
path('our-story', views.OurStory, name='our-story')
]
从settings.py:
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
INSTALLED_APPS = [
(standard django apps)
'base_app'
]
从调试消息:
Request Method: GET
Request URL: http://127.0.0.1:8000/our-story.html
Using the URLconf defined in base_app.urls, Django tried these URL
patterns, in this order:
admin/
[name='index']
our-story [name='our-story']
The current path, our-story.html, didn't match any of these.
我猜html模板的路径只有我们的-story.html,如果您的项目名称是base_appURL应该是- 我们不能使用我们的-story.html,因为我们正在使用framework,并且已经有了一个路由
像这样使用,你一定会摆脱这个错误 在views.py中,您应该返回:
return render(request, template, context)
在哪里
template = 'our-story.html'
及
此外,在视图中使用小写名称也是一种很好的做法:
def our_story
我不是django专家(我使用django开发人员开发),但基于调试输出和您的代码,我认为您想要的url应该是
http://127.0.0.1:8000/our-故事
,没有.html
Django意味着你不需要像.html
那样在你的URL末尾加上粗制滥造的东西。如果它真的只是一个静态的HTML文件,您只需要使用一行视图来呈现适当的模板,而不需要上下文。(哦,我知道你这么做了。所以你唯一的错误就是输入了错误的URL,可能是在指向该页面的某些链接中输入的。)
def our_story