Flask + Jinja: Pass Data to a Base Template/All Templates

Solution 1:

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.