【问题标题】:How to organize HTML snippets within a Flask app如何在 Flask 应用程序中组织 HTML 片段
【发布时间】:2014-04-17 20:17:22
【问题描述】:

在我的 Flask 应用程序中,我有几个想要在不同模板中使用的元素(按钮等)。每次都复制 HTML 代码似乎很乏味,但为每个要包含的元素添加一个特定的 HTML 文件似乎也太过分了。我最终会得到一个大的模板目录。

有没有更好的方法来做到这一点?我考虑过创建一个 macros.html 文件,然后每次都导入其中的每一个。

我想另一种方法是为每种类型创建一个过滤器并将其注册到我的应用程序中。 (app.template_filter)

组织这些元素的最佳方式是什么?

【问题讨论】:

  • 一定是Jinja吗?我个人停止使用模板引擎。我为我的 html 模板使用 python 函数和 yattag 库。这更灵活。
  • 我愿意接受有关最佳方法的建议。我使用 Flask 作为我的框架,它内置了 jinja2,所以这是我迄今为止一直在使用的。但这个应用程序还处于早期阶段,事情可以改变。

标签: python html flask jinja2 organization


【解决方案1】:

您可以为您认为要重复使用的 HTML 代码子集创建一个模板,然后使用 jinja construct {% include ... %} 将它们包含在您的其他 HTML 文件中

例如:

您可以在标题模板文件中包含<head> 标记和您网站的导航菜单(如果您的网站使用了)。让我们称之为tl_header.html 您可以在另一个文件tl_footer.html 中拥有与页脚相关的HTML。现在,对于您网站上的所有其他页面,您可以创建 HTML 文件,例如:

{% include tl_header.html %}
...
page specific HTML
...
{% include tl_footer.html %}

这让您了解了如何将常见的 HTML 元素提取到单独的模板中,并将它们包含在其他模板中。使代码更易于维护。

【讨论】:

  • 应该像{% include 'tl_footer.html' %},带引号。
猜你喜欢
  • 1970-01-01
  • 2012-03-12
  • 2019-01-08
  • 1970-01-01
  • 2018-06-09
  • 2017-12-03
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
相关资源
最近更新 更多