Viele Routen rund um meine Blueprint-App müssen "Sidebar-Daten" an Jinja senden.Wie kann ich Variablen zu Jinja Vorlage von einem Flask Decorator senden?
Ich bin auf der Suche nach dem effizientesten Weg, dies zu tun. Das hat etwas Besseres sein als meine ‚generate_sidebar_data()‘ Import-Funktion in jeden Plan, immer wieder sagen:
var1, var2, var3 = generate_sidebar_data()
und sendet sie dann mit ‚render_template‘:
return render_template('template.html',
var1=var1,
var2=var2,
var3=var3
)
Was ich will, es ist ein Dekorateur, den ich mit der Route setzen kann, die das gleiche tun wird, das oben genannte tut (Funktion ausführen und die vars an jinja senden), aber ich weiß nicht, ob das möglich ist. Wie sende ich Variablen aus einer Decorator-Funktion an Jinja?
@blueprint.route('/')
@include_sidebar_data
def frontpage():
return render_template('template.html')
Ich habe mit dem context_processor herumgespielt, bin aber auf dem '@blueprint' Teil aufgelegt. meine Dekorateure sind nicht in einem Blueprint, also gibt es kein '@app' oder '@blueprint' verfügbar – chrickso
Also @app decorator verwenden, die Kontext für alle Anwendungen mit beliebigen Blaupausen hinzufügen. – tbicr
@tbicr Alter Kommentar, ich weiß. Aber Sie haben in den Beispielen "Blaupause" falsch geschrieben. –