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

2 投票
1 回答
2122 浏览
提问于 2025-04-18 03:11

在我的Flask应用中,有几个元素(比如按钮之类的),我想在不同的模板中使用。每次都复制HTML代码感觉太麻烦了,但为每个元素单独添加一个HTML文件又觉得太多了。这样一来,我的模板目录就会变得很大。

有没有更好的方法呢?我想过创建一个macros.html文件,然后每次都导入里面的内容。

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

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

1 个回答

2

你可以为那些你觉得会经常用到的HTML代码部分创建一个模板,然后在其他HTML文件中使用jinja的{% include ... %}功能来引入它们。

举个例子:

你可以把网站的标签和导航菜单(如果你的网站有的话)放在一个头部模板文件里。我们可以叫它tl_header.html。然后把页脚相关的HTML放在另一个文件tl_footer.html里。这样,在你网站的每个其他页面上,你可以像这样创建HTML文件:

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

我希望这能让你明白如何把常用的HTML元素提取到一个单独的模板中,并在其他模板中引入它们。这样可以让代码更容易维护。

撰写回答