如何访问Jinja2模板中的会话数据(应用程序引擎上的Bottle框架)?

时间:2010-03-31 15:19:59

标签: python google-app-engine session jinja2 beaker

我在Google App Engine上运行微框架Bottle。我正在使用Jinja2作为模板。我正在使用Beaker来处理会话。我仍然是一个非常大的Python新手,而且我很开心我得到了这个:)我的问题是我如何访问模板中的会话数据?我可以在实际的python代码中获得会话数据没问题。我每次调用jinja模板时都可以传递会话数据。但是因为我需要站点主菜单栏中的会话数据...这意味着我必须在每个页面上传递它。有谁知道我是否可以直接在模板中访问它?

例如,我需要我的标题链接的会话数据:

主页|常见问题|登录

主页|常见问题|注销

非常感谢任何帮助! :d

1 个答案:

答案 0 :(得分:11)

如果您希望所有模板都可以访问它们,您可以将其添加到Jinja2 environment globals。有关其他信息,请参阅this page

<强>更新

一个简单的例子是,对于您的设置代码:

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

然后,在您的请求处理代码中:

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