随机化jinja 2中列表的元素

时间:2015-07-24 10:06:58

标签: python sorting random jinja2

是否可以随机对jinja 2中的列表进行排序?

给定像(1,2,3)这样的列表,每次运行得到不同的结果,如:

"([^"]*)"

2 个答案:

答案 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  %}