Python 如何在jinja2模板中获取列表中的列表

Python 如何在jinja2模板中获取列表中的列表,python,flask,jinja2,Python,Flask,Jinja2,在烧瓶里 @app.route('/test') def test(): test = ['a','b','c','d','e','f','g',['1','2','3']] return render_template('test.html',data=test) 这是我的模板: {% for item in data %} <tr> <td>{{item.0}}</td> <td>{{item.1}}</td&

在烧瓶里

@app.route('/test')
def test():
    test = ['a','b','c','d','e','f','g',['1','2','3']]
    return render_template('test.html',data=test)
这是我的模板:

{% for item in data %}
<tr>
  <td>{{item.0}}</td> 
  <td>{{item.1}}</td>  
  <td>{{item.2}}</td>
  <td>{{item.3}}</td> 
  <td>{{item.4}}</td>  
  <td>{{item.5}}</td>
  <td>{{item.6}}</td>
</tr>
<tr>
  <td colspan="5">{{ item[7][0]}}</td>
  <td>{{ item[7][1]}}</td>
  <td>{{ item[7][2]}}</td>
</tr>
{% endfor %}
如何在列表中获取列表

看起来像是
jinja2
需要字符串,但它无法重新生成python
item[7][0]
格式。 我还尝试了
item.7.0
item.7[0]
,但出现了相同的错误


谢谢

您正在向模板传递一个由8个元素组成的列表(7个字符串和另一个字符串列表)

然后,在Jinja模板中,您将迭代该列表:

{%for data%}中的项目

但是,在循环中,您试图单独访问每个列表成员,但这在循环上下文中没有意义

您的代码在没有for循环的情况下可以正常工作:

<tr>                                                                            
  <td>{{data.0}}</td>                                                           
  <td>{{data.1}}</td>                                                           
  <td>{{data.2}}</td>                                                           
  <td>{{data.3}}</td>                                                           
  <td>{{data.4}}</td>                                                           
  <td>{{data.5}}</td>                                                           
  <td>{{data.6}}</td>                                                           
</tr>                                                                           
<tr>                                                                            
  <td colspan="5">{{ data[7][0]}}</td>                                          
  <td>{{ data[7][1]}}</td>                                                      
  <td>{{ data[7][2]}}</td>                                                      
</tr> 

{{data.0}}
{{data.1}}
{{data.2}}
{{data.3}}
{{data.4}}
{{data.5}}
{{data.6}}
{{数据[7][0]}
{{数据[7][1]}
{{数据[7][2]}
输出:

<tr>
  <td>a</td> 
  <td>b</td>  
  <td>c</td>
  <td>d</td> 
  <td>e</td>  
  <td>f</td>
  <td>g</td>
</tr>
<tr>
  <td colspan="5">1</td>
  <td>2</td>
  <td>3</td>
</tr>

A.
B
C
D
E
F
G
1.
2.
3.

您正在向模板传递一个由8个元素组成的列表(7个字符串和另一个字符串列表)

然后,在Jinja模板中,您将迭代该列表:

{%for data%}中的项目

但是,在循环中,您试图单独访问每个列表成员,但这在循环上下文中没有意义

您的代码在没有for循环的情况下可以正常工作:

<tr>                                                                            
  <td>{{data.0}}</td>                                                           
  <td>{{data.1}}</td>                                                           
  <td>{{data.2}}</td>                                                           
  <td>{{data.3}}</td>                                                           
  <td>{{data.4}}</td>                                                           
  <td>{{data.5}}</td>                                                           
  <td>{{data.6}}</td>                                                           
</tr>                                                                           
<tr>                                                                            
  <td colspan="5">{{ data[7][0]}}</td>                                          
  <td>{{ data[7][1]}}</td>                                                      
  <td>{{ data[7][2]}}</td>                                                      
</tr> 

{{data.0}}
{{data.1}}
{{data.2}}
{{data.3}}
{{data.4}}
{{data.5}}
{{data.6}}
{{数据[7][0]}
{{数据[7][1]}
{{数据[7][2]}
输出:

<tr>
  <td>a</td> 
  <td>b</td>  
  <td>c</td>
  <td>d</td> 
  <td>e</td>  
  <td>f</td>
  <td>g</td>
</tr>
<tr>
  <td colspan="5">1</td>
  <td>2</td>
  <td>3</td>
</tr>

A.
B
C
D
E
F
G
1.
2.
3.
试试看

{%用于数据%中的项]
{%if item{124; string%}}或{%if item is string%}
{{item}}
{%else%}
{项%中的项“”为%i}
{{item_iside}
{%endif%}
{%endfor%}
试试看

{%用于数据%中的项]
{%if item{124; string%}}或{%if item is string%}
{{item}}
{%else%}
{项%中的项“”为%i}
{{item_iside}
{%endif%}
{%endfor%}
谢谢

我只是没有提供好的测试数据 在马特的回答提醒我之后,我发现我犯了一个愚蠢的错误。 在工艺试验之后:

test =[ ['a1','b1','c1','d1','e1','f1','g1',['1','2','3']],
        ['a2','b2','c2','d2','e2','f2','g2',['2','3','4']]
        ]
循环现在可以工作了

谢谢你们。

谢谢

我只是没有提供好的测试数据 在马特的回答提醒我之后,我发现我犯了一个愚蠢的错误。 在工艺试验之后:

test =[ ['a1','b1','c1','d1','e1','f1','g1',['1','2','3']],
        ['a2','b2','c2','d2','e2','f2','g2',['2','3','4']]
        ]
循环现在可以工作了


谢谢你们。

我需要colspan=“5”,所以第二个循环不是一个好选择,也谢谢。我需要colspan=“5”,所以第二个循环不是一个好选择,也谢谢。但是如何使用for循环呢?但是如何使用for循环呢?