从jinja2 python中的数组中获取列

时间:2017-08-04 23:40:13

标签: python jinja2

我有一个数组

{% set myarray = [['apple', true, false],
['banana', false, true]] %}

我想要

['apple', 'banana']

为什么jinja容易让事情变得如此困难?

1 个答案:

答案 0 :(得分:0)

您可以使用jinja2的do扩展程序

  

“do”又名表达式语句扩展向模板引擎添加一个简单的do标记,其作用类似于变量表达式,但忽略了返回值。

的Python

from flask import Flask

app = Flask(__name__)
app.jinja_env.add_extension('jinja2.ext.do')

HTML

{% set myarray = [['apple', true, false],['banana', false, true]] %}
{% set second_array = [] %}

{% for a in myarray %}
    {% do second_array.append(a[0]) %}
{% endfor %}

{{ second_array }}

另一种不使用do扩展程序的方法是生成自定义filter并使用标准列表理解

的Python

def get_nth(lst, i):
    return [l[i] for l in lst]
app.jinja_env.filters['get_nth'] = get_nth

HTML

{{ myarray|get_nth(0) }}