Flask 上下文处理器

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

(0)
打赏 支付宝 支付宝 微信 微信
adminadmin
上一篇 2023年5月18日
下一篇 2023年5月18日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注