Python 如何创建注册过滤器的jinja2扩展

Python 如何创建注册过滤器的jinja2扩展,python,jinja2,Python,Jinja2,我想创建一个定义并注册新过滤器的jinja2扩展。我如何才能做到这一点?这项功能: from jinja2.ext import Extension def visible_only(value): return [v for v in value if not getattr(v, "visible", False)] class MyExtension(Extension): def __init__(self, environment): environ

我想创建一个定义并注册新过滤器的
jinja2
扩展。我如何才能做到这一点?

这项功能:

from jinja2.ext import Extension

def visible_only(value):
    return [v for v in value if not getattr(v, "visible", False)]

class MyExtension(Extension):
    def __init__(self, environment):
        environment.filters["visible_only"] = visible_only

如果您将烧瓶与Jinja2一起使用,还可以使用装饰器:

@app.template_filter('visible_only')
def visible_only(value):
    return [v for v in value if not getattr(v, "visible", False)]