是否可以随机对jinja 2中的列表进行排序?
给定像(1,2,3)这样的列表,每次运行得到不同的结果,如:
"([^"]*)"
答案 0 :(得分:2)
没有可用的随机过滤器,但很容易创建一个:
import random
def filter_shuffle(seq):
try:
result = list(seq)
random.shuffle(result)
return result
except:
return seq
然后你register as a custom filter:
environment.filters['shuffle'] = filter_shuffle
并将其用作过滤器:
{% for elem in some_sequence|shuffle %}
{{ elem }}
{% endfor %}
或者,在将列表传递给模板之前对其进行随机播放。
答案 1 :(得分:1)
import random
@app.template_filter('shuffle')
def filter_shuffle(seq):
try:
result = list(seq)
random.shuffle(result)
return result
except:
return seq
然后在模板中
{% for option in list|shuffle %}