Jinja 2模板使用中引用的变量值作为状态

2024-09-30 22:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在烧瓶中使用jinja2模板。正在使用以下命令渲染它:

return render_template(
    "index.html",
    data=data,
    running=running,
    restarting=restarting,
    stopped=stopped,
    states=states)

我有一个列表(states),其中包含为模板返回的列表的名称。为了减少重复相同的代码,我希望遍历状态列表states = ["running", "restarting", "stopped", "data"],调用其他值,然后呈现相关的值,而不是让html重复每个部分(对于干代码)。我的问题是,当我在for语句之后调用state时,它不关联states中的state,而是将其作为字符串,而不是获取其值并呈现相应的返回列表(数据、运行或停止等)。下面是HTML,希望引用状态的区域已标记为VALUEOFSTATE

{% extends "base.html" %}

{% block content %}
    <div>
        {% for state in states %}
        {% if VALUEOFSTATE | length!=0 %}
        <h2 class="text-center" style="padding:10px; text-transform: capitalize">VALUEOFSTATE</h2>
        <div class="col" style="padding-bottom:20px">
        <table class="table-striped table-bordered" style="width:95%">
            <tr>
                <th style="padding:10px">Name</th><th style="padding:10px">Run Command</th><th style="padding:10px">AutoRemove</th><th style="padding:10px">Up Time</th><th style="padding:10px">Actions</th>
            </tr>
            {% for container in VALUEOFSTATE %}
            <tr>
                <td style="padding:10px">{{ container["Name"] }}</td><td style="padding:10px">{{ container["Command"] }}</td><td style="padding:10px">{{ container["Auto Remove"] }}</td><td style="padding:10px">{{ container["Status"] }}</td><td style="padding:10px">actionsbuttons</td>
            </tr>
            {% endfor %}
        </table>
        </div>
        {% endif %}
    </div>
{% endblock %}

Tags: div列表datastylecontainerhtmltablerunning