【问题标题】:How can I iterate a list, index by index, using jinja如何使用 jinja 逐个索引迭代列表
【发布时间】:2020-10-20 07:10:52
【问题描述】:

这是我的代码:

{%阻止内容%}
    {% for i in posts %}
        {% 设置 x = x + 1 -%}
        

{{ i[x] }}

{% endfor %}
{%endblock%}

顺便说一句,我在 render_template 中将 x 设置为 0,您可以在此处看到:

return render_template('index.html', titulo="Home", posts=lista, x = 0)

“posts”变量接收一个包含一些字符串的大列表。我想知道如何迭代这些字符串,从 index[0] 开始到最后一个,将它们放在“p”标签中,作为重复该结构的循环。

我尝试了上面的代码,但它只返回第一个索引,而不是其余的,我不知道我做错了什么。

【问题讨论】:

标签: python html web flask jinja2


【解决方案1】:

您不需要索引。试试:

 {% for i in posts %}
        <p style="border: 1px solid black; padding: 5px 5px; border-radius: 5px;">{{ i }}</p>
    {% endfor %}

它会自动使用 for 循环遍历项目。这也意味着您不需要将 x 传递到模板中。

【讨论】:

    【解决方案2】:

    此外,如果你想要一个索引和一个值,你可以这样做

    {% for i, v in e %}
    <div>{{ i }}: {{ v }}</div>
    {% endfor %}
    

    并传入一个枚举。

    @app.route('/')
    def index():
        stuff = ['first', 'second', 'third']
        return render_template('index.html', e = enumerate(stuff))
    

    这会给你

    0: first
    1: second
    2: third
    

    【讨论】:

    • 我现在就做了,但是没用,结果一样:(
    • 你也可以只使用{{loop.index}}而不是枚举。
    • 确实如此。但是将生成器传递给模板可以解决很多问题。
    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2018-09-21
    • 2011-02-16
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多