Bri*_*ach 16 python jinja2 flask
我的webapp导航系统中有一个表,每次呈现页面时都会填充最新信息.我怎么能避免在每个代码中加入以下代码view?
def myview():
mydict = code_to_generate_dict()
return render_template('main_page.html',mydict=mydict)
Run Code Online (Sandbox Code Playgroud)
mydict用于填充表格.该表将显示在每个页面上
Jos*_*h J 25
您可以使用Flask的Context Processors将全局变量注入jinja模板
这是一个例子:
@app.context_processor
def inject_dict_for_all_templates():
return dict(mydict=code_to_generate_dict())
Run Code Online (Sandbox Code Playgroud)
要将新变量自动注入模板的上下文,Flask中存在上下文处理器.上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文.上下文处理器是返回字典的函数.然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并: