繁体   English   中英

用于迭代器的自定义jinja2过滤器

[英]Custom jinja2 filter for iterator

如何最有效地为Jinja2编写自定义过滤器,适用于内置“排序”过滤器之类的迭代,用于模板中的for循环?

例如:

{% for item in iterable|customsort(somearg) %}
...
{% endfor %}

有关一般文档,请参见http://jinja.pocoo.org/docs/api/#writing-filters

与编写任何其他过滤器的方式相同。 这是一个可以帮助您入门的示例:

from jinja2 import Environment, Undefined

def custom_sort(iterable, somearg):
    if iterable is None or isinstance(iterable, Undefined):
        return iterable

    # Do custom sorting of iterable here

    return iterable

# ...

env = Environment()
env.filters['customsort'] = custom_sort

在成为问题之前不要担心效率。 在任何情况下,模板引擎都不太可能成为瓶颈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM