首页 > 解决方案 > Flask:如果没有被另一个模板扩展,则创建块的内容

问题描述

我有一个所有其他模板扩展的基本模板:

base.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>

其他模板将扩展此模板,但不完全:

site.html:

{% extends base.html %}

{% block body %}
    ...
{% endblock %}

title块未扩展。在这种情况下,我可以给它一个默认值base.html吗?

标签: templatesflaskjinja2

解决方案


似乎只需将要替换的内容放在base.html文件中的块内就足够了。所以“扩展”并没有真正扩展(在附加的意义上)一个块的现有内容,而是替换它。 base.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>

推荐阅读