Ik heb een methode die gegevens retourneert die nodig zijn in mijn basissjabloon (inhoud voor een globale voettekst).
Hoe geef je (1) een variabele door aan de basissjabloon (die andere sjablonen uitbreiden) of (2) geef je een variabele door aan alle sjablonen wereldwijd zonder deze expliciet toe te voegen in een aanroep van render_template
?
Antwoord 1, autoriteit 100%
Van flask-documenten: Flask’s contextprocessors
Om nieuwe variabelen automatisch in de context van een sjabloon te injecteren,
contextprocessors bestaan in Flask. Contextprocessors worden uitgevoerd voordat de
sjabloon wordt gerenderd en heeft de mogelijkheid om nieuwe waarden te injecteren in
de sjablooncontext. Een contextprocessor is een functie die a . retourneert
woordenboek. De sleutels en waarden van dit woordenboek worden vervolgens samengevoegd
met de sjablooncontext, voor alle sjablonen in de app:
Voorbeeld uit documenten:
@app.context_processor
def inject_user():
return dict(user=g.user)
Merk op dat dit voorbeeld de variabele g
gebruikt, die al toegankelijk is in sjablonen.