如何创建一个注册过滤器的jinja2扩展?



我想创建一个jinja2扩展来定义和注册一个新的过滤器。我该怎么做呢?

如果你正在使用Flask和Jinja2,你也可以使用一个装饰器:

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

这行得通:

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

最新更新