如何在Flask应用中组织HTML片段
在我的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元素提取到一个单独的模板中,并在其他模板中引入它们。这样可以让代码更容易维护。