Django:无法让主页正确显示 TemplateDoesNotExist at /

Posted

技术标签:

【中文标题】Django:无法让主页正确显示 TemplateDoesNotExist at /【英文标题】:Django: Can't get homepage to display correctly TemplateDoesNotExist at / 【发布时间】:2012-12-22 22:50:00 【问题描述】:

我正在开发一个新的 Django 项目,并且很难让 index.html 页面正确显示。有关如何更改以使其正确显示的任何建议?

我收到了错误

TemplateDoesNotExist at /

index.html

我对每个文件的设置如下。

我的项目名称/我的项目名称/settings.py

import os
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'templates/static')
TEMPLATE_DIRS = (
    PROJECT_ROOT + '../templates'
)

我的项目名称/我的项目名称/urls.py

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^', 'apps.views.index'),
    url(r'^admin/', include(admin.site.urls)),
)

我的项目名称/apps/views.py from django.shortcuts import render_to_response

def index(request):
    return render_to_response('index.html', locals())

我也是 Django 新手,所以不要讨厌! :) 我很乐意承认我是个菜鸟……

【问题讨论】:

【参考方案1】:

设置您的模板目录:

PROJECT_DIR = os.path.dirname(__file__)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_DIR, 'templates'),
)

您的文件夹结构应类似于:

project_name/
    project_name/
        settings.py
        templates/
            index.html

文件夹结构尤为重要!

如果你还没有定义你的模板加载器:

TEMPLATE_LOADERS = (
    ('django.template.loaders.cached.Loader', (
        'django.template.loaders.filesystem.Loader',
        'django.template.loaders.app_directories.Loader',
    )),
)

我已经用cached.Loader 包装了标准加载器,有趣的是它只是缓存了预编译的模板。

另外,当我在这里时,修复你的根 URL:

urlpatterns = patterns('',
    url(r'^$', 'apps.views.index'),

注意额外的 $ 终止正则表达式的末尾,否则第一个 URL 将匹配每个 URL,其他任何一个都没有机会匹配。

【讨论】:

【参考方案2】:

试试这个..

TEMPLATE_DIRS = (
    PROJECT_ROOT + '../templates/'/
)

【讨论】:

以上是关于Django:无法让主页正确显示 TemplateDoesNotExist at /的主要内容,如果未能解决你的问题,请参考以下文章

Django 找不到模板,文件存在并指定了 TEMPLATE_DIR

如何使用 django 将数据表值显示到主页中

在 wordpress 主页上显示评论

django 中的表单占位符无法正确显示

Django Web开发 投票与评论

Django-ckeditor 在 html 中无法正确显示