我想创建一个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