当前位置:网站首页>Flask博客实战 - 实现全站导航菜单及首页数据展示

Flask博客实战 - 实现全站导航菜单及首页数据展示

2022-06-22 08:21:00 轻编程

Flask上下文处理器

我们博客的设计是全站顶部菜单为通用菜单,调用的数据为文章的分类,那么如何将文章分类数据传递到每个页面的上下文呢?

为了将新变量自动注入模板的上下文中,Flask 中存在上下文处理器context_processor。上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文。上下文处理器是返回字典的函数。然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并:

用法为如下所示,这只是一个例子:

@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="€"):
        return f"{amount:.2f}{currency}"
    return dict(format_price=format_price)

上面的上下文处理器使format_price函数可用于所有模板:

{
  
   { format_price(0.33) }}

您还可以将fo

原网站

版权声明
本文为[轻编程]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_41861301/article/details/125337208