模板加载位置

时间:2012-10-11 10:25:15

标签: django

我是django的新手,通过做小应用程序来学习。 在views.py中,我有意包含了一个不存在的模板文件(.html)。

t = get_template('current_datetimeP.html')
在setting.py中

TEMPLATE_DIRS =(     “d:/ Django_Code / mysite的/模板/”, )

我在/ time /

收到此错误 TemplateDoesNotExist

Django尝试按以下顺序加载这些模板: 使用loader django.template.loaders.filesystem.Loader:     D:\ Django_Code \ mysite \ templates \ current_datetimeP.html(文件不存在)

因为我在settings.py中包含了D:\ Django_Code \ mysite \ templates \,所以Django在那里很好但是跟着怎么样

我也得到了这个

使用loader django.template.loaders.app_directories.Loader:      C:\ Python27 \ lib \ site-packages \ django \ contrib \ auth \ templates \ current_datetimeP.html(文件不存在)

为什么 Django在这里查看* C:\ Python27 \ lib \ site-packages \ django \ contrib \ auth \ templates * 。 它是搜索模板的默认位置吗?

还有一件事,很明显Django正在查看上面的目录。我们可以在那里放置模板文件,而不是放入应用程序目录。 (虽然这不是一个好习惯)?

2 个答案:

答案 0 :(得分:2)

模板加载由settings.py中的TEMPLATE_LOADERS设置控制,通常看起来像这样:

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

app目录加载程序在设置中INSTALLED_APPS中列出的任何应用程序的“templates”文件夹中查找模板。

文件系统加载程序尝试从设置文件中TEMPLATE_DIRS下列出的完全限定目录路径名称加载模板。

如果您希望提供文件系统加载程序首选项,请将它放在TEMPLATE_LOADERS设置中的应用程序目录加载器之前。如果你想关闭app目录加载,请用#(或从元组中删除它)注释掉它。

答案 1 :(得分:0)

尝试使用settings.py location

创建的模板路径
import os
DIRNAME = os.path.dirname(__file__)
TEMPLATE_DIRS = (
    os.path.join(DIRNAME, "templates"),
)


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