我有一个数组
{% set myarray = [['apple', true, false],
['banana', false, true]] %}
我想要
['apple', 'banana']
为什么jinja容易让事情变得如此困难?
答案 0 :(得分:0)
您可以使用jinja2的do
扩展程序
“do”又名表达式语句扩展向模板引擎添加一个简单的do标记,其作用类似于变量表达式,但忽略了返回值。
from flask import Flask
app = Flask(__name__)
app.jinja_env.add_extension('jinja2.ext.do')
{% 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
并使用标准列表理解
def get_nth(lst, i):
return [l[i] for l in lst]
app.jinja_env.filters['get_nth'] = get_nth
{{ myarray|get_nth(0) }}