Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django返回未找到映射URL的页面_Python_Django - Fatal编程技术网

Python Django返回未找到映射URL的页面

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

我试图用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(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_app

URL应该是-

我们不能使用我们的-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