I have a table in the navigation system of my webapp that will be populated with up-to-date information each time a page is rendered. How could I avoid putting the following code in each view
?
def myview():
mydict = code_to_generate_dict()
return render_template('main_page.html',mydict=mydict)
mydict
is used to populate the table. The table will show up on each page
You can use Flask's Context Processors to inject globals into your jinja templates
Here is an example:
@app.context_processor
def inject_dict_for_all_templates():
return dict(mydict=code_to_generate_dict())
To inject new variables automatically into the context of a template, context processors exist in Flask. Context processors run before the template is rendered and have the ability to inject new values into the template context. A context processor is a function that returns a dictionary. The keys and values of this dictionary are then merged with the template context, for all templates in the app: