【问题标题】:How do you extend a Django project root HTML file in project apps?如何在项目应用程序中扩展 Django 项目根 HTML 文件?
【发布时间】:2014-03-23 19:28:45
【问题描述】:

下面是我的 Django App 的结构:

Project/
    static/
    App1/
    App2/
    App3/
    ...

所以我有一个 Django 项目,我想在项目中的应用程序中保持 HTML/CSS 样式统一。

如何从这些应用程序中扩展驻留在 Project 文件夹中的 HTML 模板?

我只是成功地为每个应用程序在应用程序文件夹中扩展了 HTML 模板。

我的项目设置将静态文件设置为位于“/static/”中

【问题讨论】:

  • 模板不需要像静态文件一样提供(因为您的用户不应该能够访问它们。您的应用程序将使用它们来呈现 HttpResponse)。 CSS 和 js 文件 - 这些是客户端代码,用户端必须能够按原样下载它们,并且浏览器负责运行它们。什么让你感到困惑?

标签: python html css django


【解决方案1】:

您可以将您的项目通用模板放在Project/templates 中,并将/path/to/Project/templates 添加到您的TEMPLATE_DIRS 设置中的settings.py 文件中。将根添加到其他所有内容中,以便首先搜索它:

TEMPLATE_DIRS = (
    # Don't forget to use absolute paths, not relative paths.
    "/path/to/Projects/templates",
    #other dirs ...
)

然后你像往常一样从你的应用程序模板中扩展它:

{# App1/templates/App1/template1.html #}
{% extends "template_in_project_root.html" %}
...

the TEMPLATE_DIRS setting

【讨论】:

  • 所以我可以在 TEMPLATE_DIRS 中有多个路径?
  • 当然,他们会按顺序进行搜索。
  • 定义一个ROOT_DIR并做os.path.join(ROOT_DIR, 'templates')更好。
猜你喜欢
  • 2013-06-13
  • 2018-03-20
  • 2017-06-20
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
相关资源
最近更新 更多