2010-03-31 5 views
7

Ich führe das Mikro-Framework Bottle auf Google App Engine. Ich verwende Jinja2 für meine Vorlagen. Und ich verwende Beaker, um die Sitzungen zu behandeln. Ich bin immer noch ein ziemlich großer Python-Neuling und bin ziemlich begeistert, dass ich so weit gekommen bin :) Meine Frage ist, wie kann ich auf die Sitzungsdaten innerhalb der Vorlagen zugreifen? Ich kann die Sitzungsdaten innerhalb des eigentlichen Python-Codes problemlos finden. Und ich könnte die Sitzungsdaten jedes Mal weitergeben, wenn ich eine Jinja-Vorlage anrufe. Aber da ich die Sitzungsdaten in der Hauptmenüleiste der Website brauche, müsste ich sie auf jeder einzelnen Seite übergeben. Weiß jemand, ob ich direkt in den Vorlagen darauf zugreifen kann?Wie greife ich auf Sitzungsdaten in Jinja2-Vorlagen zu (Bottle-Framework auf App Engine)?

Zum Beispiel muss ich die Sitzungsdaten für meine Header Links:

Startseite | FAQ | Login

oder

Home | FAQ | Logout

Jede Hilfe wird sehr geschätzt! : D

+0

ich meine Antwort aktualisiert. –

Antwort

11

Sie können Dinge zum Jinja2 environment globals hinzufügen, wenn Sie möchten, dass sie für alle Vorlagen zugänglich sind. Weitere Informationen finden Sie unter this page.

Update:

Ein einfaches Beispiel ist, für die Setup-Code:

from jinja2 import Environment, PackageLoader 
env = Environment(loader=PackageLoader('yourapplication', 'templates')) 

Dann in Ihrer Anfrage Behandlungscode:

env.globals['session'] = session # Your session 
# Your template can contain things like {{ session['key'] }} 
template = env.get_template('mytemplate.html') 
print template.render(the='variables', go='here') 
#return response using rendered data 
+1

Ich habe einige Probleme, einige Beispiele zu finden. Können Sie mir sagen, wie ich die globale Variable setzen würde? : D – TylerW

+0

Super! Danke vielmals. – TylerW