首页 > 解决方案 > 如何从数组中取出一些项目

问题描述

在我的烧瓶 / jinja2 应用程序中,我从数据库中获取一些行以在表格中打印。对于每一行,我想为第一项中的行定义一个标识符,使用第二项定义该行的类,并将该行的其余部分打印为表数据。我正在这样做,它可以工作,但感觉有点笨拙:

{%- for  item in row %}
    {% if loop.index==1 %}
      <tr id="rec{{item}}" 
    {% elif loop.index==2 %}
     class="{{item}}" >
    {% else %}
      <td>{{item}}</td>
    {% endif %}
  {% endfor -%}</tr>

我想做类似的事情:

id="rec"+row.pop()
class=row.pop()

然后使用变量 id 和 class 来定义行,然后遍历列表的左侧。这在jinja2中可能吗?

(使用安装在 debian 9 上的 jinja 2.8,但如果这能让事情变得更好,当然可以升级)

标签: pythonjinja2

解决方案


您可以使用它们的索引从数组中获取第一项,并使用数组的切片(例如row[2:])进行 for 循环:

<tr id="rec{{row[0]}}" class="{{row[1]}}" >
{%- for item in row[2:] %}
   <td>{{item}}</td>
{% endfor -%}</tr>

推荐阅读