您需要使用 Flask 的上下文处理器:
@app.context_processor
def inject_user():
return dict(user=g.user)
请参阅此类似的SO question and answer。
我如何使用它的一个例子(简单地插入应用程序配置设置):
@app.context_processor
def lib_versions():
return dict(
bokehversion = app.config['BOKEH_VERSION'],
jqueryversion = app.config['JQUERY_VERSION'],
jqueryuiversion = app.config['JQUERYUI_VERSION'],
bootstrapversion = app.config['BOOTSTRAP_VERSION'],
)
这是从我的 Flask 配置文件中提取的:
class Config(object):
DEBUG = True
TESTING = True
SQLALCHEMY_DATABASE_URI = ''
TMP_DIR = ''
STATIC_FOLDER = ''
BOKEH_VERSION = '0.8.2'
JQUERY_VERSION = '1.11.2'
JQUERYUI_VERSION = '1.11.4'
BOOTSTRAP_VERSION = '3.3.4'
class ProductionConfig(Config):
DEBUG = False
TESTING = False
然后在基本模板中调用它们,就像任何其他 Jinja2 变量一样:
<!-- START: CSS -->
<link rel="stylesheet" media="screen" type="text/css" href="http://cdn.bokeh.org/bokeh/release/bokeh-{{ bokehversion }}.min.css">
<!-- END: CSS -->
<!-- START: JS -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/{{ jqueryversion }}/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/{{ jqueryuiversion }}/jquery-ui.min.js"></script>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/{{ bootstrapversion }}/js/bootstrap.min.js"></script>
<!-- END: JS -->