【问题标题】:How to simulate while loop in Jinja2如何在 Jinja2 中模拟 while 循环
【发布时间】:2012-12-03 12:51:53
【问题描述】:

我将如何在 jinja2 中执行以下操作:

while apples < oranges:
    # some work here.

根据http://jinja.pocoo.org/docs/dev/extensions/#loop-controls,根据我得到的错误,Jinja2 不支持 while 循环。

问题是我想继续做一些工作,只要apples的值小于oranges的值

感谢您的帮助。

也相当于while True: 也很好。

【问题讨论】:

  • 我什至不知道 jinja2 的变量可以以某种有意义的方式改变值。为什么还要将业务逻辑放在模板中?

标签: python-2.7 while-loop jinja2


【解决方案1】:

要在 Jina2 中循环,您必须使用 : for。要结束 for 块中的循环,您可以使用 break。 请参阅:http://jinja.pocoo.org/docs/extensions/#loop-controls

jinja_env = Environment(extensions=['jinja2.ext.loopcontrols'])

您可以使用以下方法创建“无限”循环:

{% for _ in range(1, large_number) %}

   {% if loop.index > stop_at %}{% break %}{% endif %} 

{% endfor %}

【讨论】:

  • @vocausa 看来你不能再使用break了,我其实很困惑如何在没有break的情况下写出这样的东西??
  • 使用{% for user in users if not user.hidden %} 之类的东西来自docs
  • @muttonchops 我不明白这句话在我的情况下它没用。我需要检查所有我的团队,如果发现打破循环,如果没有继续循环。我不需要任何排除..
猜你喜欢
  • 2010-10-19
  • 2013-05-05
  • 2013-11-08
  • 2015-05-11
  • 2017-04-16
  • 2022-09-22
  • 2012-10-31
  • 1970-01-01
相关资源
最近更新 更多