我们经常要在所有模板中提供一组自己定义的函数或者变量,那么不可能去视图函数中一个个的把函数或者变量传入模板,那样真的很麻烦,就拿导航来说吧,每个前台的模板都需要这组变量,那么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中的钩子函数,使用这个函数必须返回一个字典
然后就可以直接在每个模板中使用这个这个字典对应的键来取值了