python - 迭代器的自定义 jinja2 过滤器

标签 python jinja2 customization

如何最有效地为 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

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

关于python - 迭代器的自定义 jinja2 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5481205/

相关文章:

python - 运行时的 Airflow 动态任务

jinja2 - 在 Jinja2 中用模板输出替换字符串

php - EGL 组权限添加/管理

Android ListView 项目不可点击

customization - Joomla 3 - 在文章编辑器中插入自定义字段

python - 在一行中按升序排列数字

python - 谷歌应用引擎: passing more than 255 parameters in a function

python - 读取 float 的二进制数据时出现问题

python - python如何从不在sys.path中的路径加载模块

python - Python 中的模块路径