Flask 中如何在模板中包含其他模板?

推荐答案

在 Flask 中,可以使用 {% include %} 标签在模板中包含其他模板。例如:

这会将 header.html 模板的内容插入到当前模板中。

本题详细解读

1. {% include %} 标签的作用

{% include %} 标签用于在当前模板中包含另一个模板的内容。这个功能非常有用,特别是在需要重复使用某些模板片段(如页眉、页脚、导航栏等)时。

2. 使用示例

假设你有一个 header.html 文件,内容如下:

你可以在其他模板中使用 {% include %} 标签来包含这个 header.html 文件:

-- -------------------- ---- -------
--------- -----
----- ----------
------
    ----- ----------------
    --------- ------------
-------
------
    -- ------- ------------- --
    ------
        ------- -- --- ---- ------- -- --- ---------
    -------
-------
-------

3. 传递上下文变量

{% include %} 标签还可以传递上下文变量。例如,如果你在包含模板时传递了一个变量 title,你可以在被包含的模板中使用它:

header.html 中,你可以这样使用 title 变量:

4. 处理模板不存在的情况

如果被包含的模板不存在,Flask 会抛出一个 TemplateNotFound 异常。为了避免这种情况,你可以使用 ignore missing 参数:

这样,如果 header.html 不存在,Flask 会忽略这个包含操作,而不会抛出异常。

5. 嵌套包含

你还可以在模板中嵌套使用 {% include %} 标签。例如,你可以在 header.html 中包含另一个模板 navbar.html

6. 总结

{% include %} 标签是 Flask 模板系统中非常强大的功能,它允许你将模板分解为多个可重用的部分,从而提高代码的可维护性和可读性。

纠错
反馈