gpt4 book ai didi

python - 如何在 Jinja 循环中传递多个参数?

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:02 26 4
gpt4 key购买 nike

我有两个列表:

seller = ["Bob", "Joe", "Tim"]
cash = [12, 25, 67]

我在模板中传递了两个参数:

...

return render_template("sales.html", sellers=sellers, seller_cash=seller_cash)

我想在同一个循环中渲染两个参数:

{% for seller in sellers %}
<p><strong>{{seller}}: {{cash}}</p>
{% endfor %}

显然,这是行不通的。有没有办法在同一个循环中有两个参数?

最佳答案

Jinja2 没有横向组合两个列表的发件箱解决方案,但您可以利用 python 内置 zip 创建单个列表的元组列表并将其传递给 jinja 模板引擎。您还需要重新编写 jinja2 循环,以便它可以读取元组列表

模板调用

return render_template("sales.html", seller_cash=zip(sellers, seller_cash)

Jinja2 循环

{% for seller, amount in seller_cash %}
<p><strong>{{seller}}: {{amount}}</p>
{% endfor %}

或者,您可以使用 jinja2.Environment 全局命名空间,使内置的 python zip 可用于 jinja2

>>> env = jinja2.Environment()
>>> env.globals.update(zip=zip)
>>> tmpl = """{% for seller, amount in zip(sellers, cash) %}
<p><strong>{{seller}}: {{amount}}</p>
{% endfor %}"""
>>> env.from_string(tmpl).render(sellers=seller, cash=cash)
u'\n <p><strong>Bob: 12</p>\n\n <p><strong>Joe: 25</p>\n\n <p><strong>Tim: 67</p>\n'

关于python - 如何在 Jinja 循环中传递多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com