【问题标题】:How to make flask jinja use variables from python list as a jinja expression variables如何使烧瓶神社使用python列表中的变量作为神社表达式变量
【发布时间】:2016-09-28 05:02:47
【问题描述】:

所以我有一个清单:

ABC = ['{{ row[0] }}','{{ row[1] }}','{{ row[2] }}']

在 HTML 模板中,我想使用列表 ABC 中的每个项目作为 Jinja 表达式,我该怎么做,这是我的 HTML 表格模板

{% for row in reports %}
    <tr>
    {% for item in ABC %}
        <td>{{ item }}</td>
    {% endfor %}
    </tr>
{% endfor %}

我尝试从 ABC 列表中的每个项目中删除 {{ }},但没有成功。似乎 HTML 模板中的每个项目都被视为一个字符串,不能被报告中的每一行使用。

在 HTML 页面中,表格呈现如下:

第 1 列 |第 2 列 |第 3 列

{{ 行[0] }} | {{ 行[1] }} | {{ 行[2] }}

我希望它像这样工作。

{% for row in reports %}
    <tr>
        <td>{{ row[0] }}</td>
        <td>{{ row[1] }}</td>
        <td>{{ row[2] }}</td>
    </tr>
{% endfor %}

编辑:我已更改为另一个解决方案。

【问题讨论】:

    标签: python python-3.x flask jinja2


    【解决方案1】:

    问题在于您如何创建列表。现在你正在给它字符串来标识你想要输出的项目。相反,给它你想要输出的东西。

    ABC = [row[0], row[1], row[2]]
    

    编辑:由于您尝试打​​印模板中的所有列,您可以在那里对其进行迭代。

    {% for column in row %}
        <td>{{ column }}</td>
    {% endfor %}
    

    【讨论】:

    • 我无法在 python ABC = [row[0], row[1], row[2]] 中定义这样的列表,因为 HTML 模板中定义了行 {% for row in reports %}
    • 那你为什么需要ABC呢?
    • 我想用给定的列名和每个 变量制作一个表格 HTML 模板。因为我有一些具有不同列名和每个 变量的表格 HTML 模板。
    • 我认为我的解决方案不好,所以我重新考虑创建一个单独的HTML模板文件并包含{% include('table_template_1.html') %}
    • 没有必要将您正在做的事情转移到另一个模板。我已经更新了答案。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签