【问题标题】:How to set loop.index as a variable in Jinja如何在 Jinja 中将 loop.index 设置为变量
【发布时间】:2021-12-17 11:47:24
【问题描述】:
{% for data in data_list %}
    {% set data_index = {{loop.index}} %} 
   for data_dict in data:
     pass
            

在我的内循环中,我需要在外循环中使用循环索引,因此我打算将其设置为如上所述的变量。但是语法无效。

如何做到这一点?还是有其他方法可以获取外循环索引?

【问题讨论】:

    标签: html jinja2


    【解决方案1】:

    您可以使用内置的 enumerate 函数来获取 i 作为变量,如果需要,也可以在内部循环中使用它。

    {% for i,data in enumerate(data_list) %}
        {{ i }}
        {% for j in range(i) %}
        {% endfor %}
    {% endfor %}
    

    您只需将enumerate 或任何您需要的内置python 函数作为参数传递给渲染模板函数,如下所示

    @app.get("/foo")
    def foo():
        return render_template("foo.html", enumerate=enumerate, range=range)
    

    【讨论】:

      【解决方案2】:

      我认为,你不应该在语句({%..%})中使用表达式({{..}}),试试这个:

      {% for data in data_list %}
          {% set data_index = loop.index %} 
         for data_dict in data:
           pass
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 2020-09-20
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        相关资源
        最近更新 更多