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

Python 如何在Flask应用程序中组织HTML片段,python,html,flask,jinja2,organization,Python,Html,Flask,Jinja2,Organization,在我的Flask应用程序中,我有几个元素(按钮等),我想跨不同的模板使用。每次在HTML代码中复制似乎都很乏味,但是为每个要包含的元素添加一个特定的HTML文件似乎也太过分了。我将得到一个大的模板目录 有更好的方法吗?我想创建一个macros.html文件,然后每次导入其中的每一个 我想另一种方法是为每种类型创建一个过滤器,并在我的应用程序中注册。(应用程序模板\过滤器) 组织这些元素的最佳方法是什么?您可以为您认为将大量重复使用的HTML代码子集创建一个模板,然后使用 例如: 您可以将标记和网

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

有更好的方法吗?我想创建一个macros.html文件,然后每次导入其中的每一个

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


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

您可以为您认为将大量重复使用的HTML代码子集创建一个模板,然后使用

例如:

您可以将
标记和网站的导航菜单(如果您的网站确实使用导航菜单)放在标题模板文件中。让我们称之为
tl_header.html
您可以在另一个文件
tl_footer.html
中包含与页脚相关的html。现在,您可以为站点上的每个其他页面创建HTML文件,如下所示:

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

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

它必须是Jinja吗?我个人停止使用模板引擎。我在html模板中使用python函数和yattag库。这更灵活。我愿意接受关于最佳方法的建议。我使用Flask作为我的框架,它内置了jinja2,所以到目前为止我一直在使用它。但是对于这个应用程序来说还为时过早,事情可以改变。应该像
{%include'tl_footer.html%}
,带有引号。