Pat*_*Yan 11 python jinja2 flask
我正在编写一些函数来处理模板中的日期和文本格式.
def coolfunc(s):
return s + ' is cool'
app.jinja_env.globals.update(coolfunc=coolfunc)
app.jinja_env.filters['coolfunc'] = coolfunc
Run Code Online (Sandbox Code Playgroud)
模板:
{{ coolfunc(member.name) }}
{{ member.name | coolfunc }}
Run Code Online (Sandbox Code Playgroud)
输出:
John is cool
John is cool
Run Code Online (Sandbox Code Playgroud)
我不确定函数和过滤器之间的真正区别是什么.在我看来,过滤器看起来更干净?
Sin*_*ion 11
不同之处在于过滤器可以对Environmentor 进行特殊访问Context,但是常规(全局)函数不能; 特别是有contextfilter朋友.这对于执行本地化和格式化等上下文敏感的操作非常有用,而不依赖于全局状态.
http://jinja.pocoo.org/docs/api/#utilities