我正在学习Django,并且刚刚将所有内容移至Cloud9。我不明白如何在 Cloud9 上指向我的模板?
在我的本地机器上,我将模板目录设置为/home/user/etc/etc/templates
并且工作正常。将其放入 Cloud9 时,我似乎无法掌握路径应该是什么?
在你的项目中使用绝对路径和硬编码路径并不是很好,因为你可以在不同的 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',
)
templates
您的 django 应用程序将自动在您的应用程序目录中查找模板。例如
-apps
-main_app
-templates
-blog_app
-templates
您的 main_app 和博客应用程序模板目录将被自动检测到,而不会将它们添加到 templates_path。