使用Cloud9的Django模板位置

时间:2013-08-10 15:29:51

标签: django cloud9-ide

我正在学习Django并且已将所有内容移至Cloud9。我不明白如何在Cloud9上指向我的模板?

在我的本地计算机上,我将模板目录设置为/home/user/etc/etc/templates,它运行正常。在将它放入Cloud9时,我似乎无法理解应该是什么路径?

1 个答案:

答案 0 :(得分:2)

在项目中使用绝对和硬编码路径并不是一件好事,因为您可以在不同的PC或环境中工作。因此,您可以根据settings.py文件定义项目路径。把它放在settings.py

的开头
import os

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))

所以现在你有变量PROJECT_DIR,它将指向你在每台PC和每个环境上的Django项目位置。现在,您可以在模板目录或静态文件目录中的项目中使用它:

#  Like this
TEMPLATE_DIRS = (
    os.path.join(PROJECT_DIR, 'templates'),
)

# Or like this, pointing to one dir UP
TEMPLATE_DIRS += (
    os.path.join(PROJECT_DIR, '../templates'),
)

另外,如果您设置文件包含此行:

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

您的django应用程序将自动在您的应用程序templates目录中查找模板。例如

-apps
    -main_app
        -templates
    -blog_app
        -templates

您将自动检测main_app和博客应用模板目录,而不将其添加到templates_path。