如何在Flask应用中组织HTML片段

时间:2014-04-17 20:17:23

标签: python html flask jinja2 organization

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

有更好的方法吗?我考虑过创建一个macros.html文件,然后每次都导入每个文件。

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

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

1 个答案:

答案 0 :(得分: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元素提取到单独的模板中并将其包含在其他模板中。使代码更易于维护。