flask提供全局模板变量的两种方法

我们经常要在所有模板中提供一组自己定义的函数或者变量,那么不可能去视图函数中一个个的把函数或者变量传入模板,那样真的很麻烦,就拿导航来说吧,每个前台的模板都需要这组变量,那么flask中可以有两种方法来实现这个需求

1.使用add_template_global函数

app.config.from_pyfile('settings.py')
def getServerIp():
    serverip = app.config.get('HOST')
    return serverip
app.add_template_global(getServerIp, 'getServerIp')

这样就可以在全局使用getServerIp这个全局函数了

2.使用装饰器app_context.processor

@web.app_context_processor
def site():
    site_seo = db.session.query(Config).filter_by(name="site_config").first()
    site = json.loads(site_seo.configure)
    return site

使用app_context.processor,这是flask中的钩子函数,使用这个函数必须返回一个字典

然后就可以直接在每个模板中使用这个这个字典对应的键来取值了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/673.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。