猿问

Python Flask Jinja 在另一个扩展的 html 中扩展 html

我有一个问题,如果这可能。我有一个连接到 home.html 的 layout.html 页面。在 home.html 里面我有一个表格元素。我也在尝试从 table.html 获取内容。


您可以在代码中看到我尝试过的内容。任何知识,如果这甚至可能?


布局.html


<!DOCTYPE html>

<html>


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Armering bestilling</title>

</head>

<body>

    {% block content %}


    {% endblock %}

</body>

</html>

主页.html


{% extends "layout.html" %}

{% block content %}

<div id="accordion">

    <div class="card bg-dark">

        <div class="card-header text-white bg-dark mb-3" id="headingOne">

            <h5 class="mb-0">

                <button class="btn text-light" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true"

                    aria-controls="collapseOne">

                    Armering bunnplate

                </button>

            </h5>

        </div>

        <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">

             <table class="table table-striped table-dark">

                <thead>

                  {% extends "table.html" %}

                  {% block content %}

                  {% endblock content %}

              </thead>

        </div>

    </div>

</div>


{% endblock content %}

表.html


{% block content %}

<tr>

    <td><input type="checkbox" name="name1" />&nbsp;</td>

    <td>FB1</td>

    <td>001</td>

    <td>00</td>

    <td>STK</td>

    <td>B500NC</td>

    <td>25.0</td>

    <td>20.0</td>

    <td>None</td>

    <td>None</td>

    <td>6575.0</td>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

    <td>6.58</td>

</tr>

 {% endblock content %}


杨魅力
浏览 101回答 2
2回答

Cats萌萌

我认为 Jinja2 只支持一级继承。您可能能够使用包含来实现您想要做的事情。layout.html:<html><body>&nbsp; {% block content %}&nbsp; {% endblock %}</body>child.html:{% extends "layout.html" %}{% block content %}&nbsp; {% with objects = some_objects %}&nbsp; &nbsp; {% include "table.html" %}&nbsp; {% endwith %}{% endblock %}table.html:{% for object in objects %}&nbsp; {{ object.name }}&nbsp; {{ object.desc }}{% endfor %}当您使用以下代码呈现模板时,这将起作用:d = [ {'name':'a', 'desc':'b'},&nbsp; &nbsp; &nbsp; {'name':'c', 'desc':'d'}&nbsp; &nbsp; ]return render_template('child.html', some_objects = d)此外,如果您想向下传递多个变量,则此语法对with标签有效:{% with objects = some_objects, title = title %}经测试Jinja2==2.10.3

慕侠2389804

Jinja 2.11 现在支持嵌套模板。如果您不在 2.11 上并且正在开发一个较小的应用程序,我建议您通过运行pip install Flask --upgrade.然后试着让你table.html的孩子Home.html但是,如果您热衷于使用旧版本。您需要像其他人建议的那样想出一个解决方法。
随时随地看视频慕课网APP

相关分类

Python
我要回答