Flask 上下文处理器自动向模板的上下文中插入新变量。上下文处理器在模板
渲染之前运行,并且可以在模板上下文中插入新值。上下文处理器是一个返回字典
的函数,这个字典的键值最终将传入应用中所有模板的上下文:
@app.context_processor
def inject_user():
return dict(user=g.user)
上面的上下文处理器使得模板可以使用一个名为 user ,值为 g.user 的变量。
不过这个例子不是很有意思,因为 g 在模板中本来就是可用的,但它解释
了上下文处理器是如何工作的。
变量不仅限于值,上下文处理器也可以使某个函数在模板中可用(由于 Python 允
许传递函数):
@app.context_processor
def utility_processor():
def format_price(amount, currency=u'€'):
return u'{0:.2f}{1}.format(amount, currency)
return dict(format_price=format_price)
上面的上下文处理器使得 format_price 函数在所有模板中可用:
{{ format_price(0.33) }}
你也可以构建 format_price 为一个模板过滤器(见 注册过滤器 ),
但这展示了上下文处理器传递函数的工作过程。
作者:admin,如若转载,请注明出处:https://www.web176.com/flask2/21742.html