【问题标题】:Jinja2 can't extend simple layoutJinja2 无法扩展简单布局
【发布时间】:2019-04-15 16:15:48
【问题描述】:

我有一个名为 layout.html 的布局 html 文件,内容如下:

<!DOCTYPE html>

    <html>
    <head>
        <title>{% block title %} {% endblock %}</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">
    </head>
    <body>

        {% block head %} 
            <div class = "container-fluid">
                <h1>Books </h1> 
                <h1 class = "text-muted">Rate and discover books</h1>
            </div>

        {% endblock %}


        {% block body %} {% endblock %}

    </body>
    </html>

还有一个名为 index.html 的索引布局,如下所示:

{% extends "layout.html" %}

{% block title %}{% endblock %}

{% block head %}{% endblock %}

{% block body %}
<h1>some text</h1>
{% endblock %}

但是当我使用烧瓶应用程序将 index.html 渲染到浏览器中时,我看到的只是以下文本:

为什么? 谢谢!

【问题讨论】:

    标签: jinja2 extends


    【解决方案1】:

    好吧,我现在觉得自己很愚蠢。我意识到,每当您在子模板中输入也存在于父模板中的块的名称时,您就是在覆盖父模板的该部分。所以在这种情况下,通过在子模板中输入块头并将其留空,这正是我所做的,所以文本基本上被没有文本覆盖。

    【讨论】:

    • 如果你想添加一些东西,你可以在子模板的块内使用{{ super() }}来包含父模板的内容。或者在你的布局中添加一个子块到你的 head 块并只覆盖子块。
    猜你喜欢
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    相关资源
    最近更新 更多