我在Google App Engine上运行微框架Bottle。我正在使用Jinja2作为模板。我正在使用Beaker来处理会话。我仍然是一个非常大的Python新手,而且我很开心我得到了这个:)我的问题是我如何访问模板中的会话数据?我可以在实际的python代码中获得会话数据没问题。我每次调用jinja模板时都可以传递会话数据。但是因为我需要站点主菜单栏中的会话数据...这意味着我必须在每个页面上传递它。有谁知道我是否可以直接在模板中访问它?
例如,我需要我的标题链接的会话数据:
主页|常见问题|登录
或
主页|常见问题|注销
非常感谢任何帮助! :d
答案 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