7

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

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

主页 | 常见问题 | 登录

或者

主页 | 常见问题 | 登出

任何帮助是极大的赞赏!:D

4

1 回答 1

11

如果您希望所有模板都可以访问它们,您可以将东西添加到 Jinja2环境全局变量中。有关其他信息,请参阅此页面

更新:

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

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
于 2010-03-31T16:01:47.853 回答