Issue
I have a method that returns data which is needed in my base template (content for a global footer).
How do either (1) pass a variable into the base template (which other templates extend) or (2) pass a variable to all templates globally without explicitly adding it in a call to render_template
?
Solution
From flask docs: Flask's Context Processors
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:
Example from docs:
@app.context_processor
def inject_user():
return dict(user=g.user)
Note that this example uses the g
variable, which is already accessible in templates.
Answered By - Gohn67
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.