Django返回未找到映射网址的页面

时间:2018-12-27 16:41:06

标签: python django

我正在尝试在Django中呈现基本的html / css页面,但无法使其正常工作。它的设置似乎与我的索引页相同,该索引页可以正常工作,并且404响应中的调试说明似乎表明它指向正确的url。有什么想法为什么不起作用?

*我使用的是django 2.1,所以我使用的是路径而不是旧的正则表达式网址映射

*该html文件存在并且位于template \ base_app \ our-story.html

从views.py:

def OurStory(request):
    return render(request, 'base_app/our-story.html')

来自urls.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.

3 个答案:

答案 0 :(得分:1)

URL应为-http://127.0.0.1:8000/our-story

我们不能使用our-story.html,因为我们正在使用框架并且已经有了路由。

这样使用,您肯定会摆脱此错误。

答案 1 :(得分:0)

如果您的项目名称是base_app,我想html模板的路径只会是our-story.html

答案 2 :(得分:0)

在views.py中,您应该返回:

return render(request, template, context)

其中

template = 'our-story.html'

context = { _your_context_dictionary }

在视图中使用小写名称也是一个好习惯:

def our_story