【问题标题】:Django template location with Cloud9Cloud9 的 Django 模板位置
【发布时间】:2013-08-10 15:29:51
【问题描述】:

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

在我的本地机器上,我将模板目录设置为/home/user/etc/etc/templates,它工作正常。把它放在 Cloud9 中时,我似乎无法掌握路径应该是什么?

【问题讨论】:

  • 我找到了自己的答案!如果 cloud9 中的层次结构是 /project/project/templates/template.html,那么设置中的路径是 project/templates。我在项目之前添加了一个斜线。

标签: django cloud9-ide


【解决方案1】:

在您的项目中使用绝对路径和硬编码路径并不是很好,因为您可以在不同的 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。

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 2019-01-02
    • 2016-05-27
    • 1970-01-01
    • 2015-11-13
    • 2012-02-25
    • 2014-06-06
    • 2017-07-05
    • 2015-01-24
    相关资源
    最近更新 更多