首页 > 解决方案 > Django:如何从外部模板文件夹呈现 HTML 文件

问题描述

我想知道 Django 中是否有一种方法可以从模板目录之外渲染 HTML 文件。

就我而言,我有一个 app/docs 文件夹,其中包含我的静态文档 HTML 文件。到目前为止,我尝试了所有我发现的东西,但我总是以TemplateDoesNotExist异常告终。

Tree:
  project
  |__app_name
     |__templates
     |  |__app_name
     |     |__templates
     |
     |__docs
        |__templates_to_render

任何帮助表示赞赏。

标签: djangotemplatesdjango-templates

解决方案


您可以在 Django 设置中使用TEMPLATES 配置:

DIRS 定义了引擎应按搜索顺序查找模板源文件的目录列表。

APP_DIRS 告诉引擎是否应该在已安装的应用程序中查找模板。每个后端为应存储其模板的应用程序内的子目录定义一个常规名称。

因此,APP_DIRS将已经在您的 app_name 文件夹内的模板文件夹中查看,并且DIRS您可以将您的docs文件夹设置为在您的 app_name 文件夹内部或外部。我更喜欢外面,像这样:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'docs')],
        'APP_DIRS': True,
        'OPTIONS': {
            # ... some options here ...
        },
    },
]

您的树应该看起来像这样才能工作:

Tree:
  project
  |__app_name
     |__templates
     |  |__app_name
     |     |__templates
     |
     docs
     |__templates_to_render

推荐阅读