python - 如何访问 Jinja2 模板(应用引擎上的 Bottle 框架)中的 session 数据?

标签 python google-app-engine session jinja2 beaker

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

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

主页 |常见问题 |登录

主页 |常见问题 |注销

非常感谢任何帮助! :D

最佳答案

您可以向 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

关于python - 如何访问 Jinja2 模板(应用引擎上的 Bottle 框架)中的 session 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2554174/

相关文章:

google-app-engine - 使用 db.StringProperty() 作为 Google App Engine 中的唯一标识符

java - 本地主机上的 wicket 应用程序之间的 Wicket 交互

python - 如何在 Python 中创建只读类属性?

python - 获取列表的连续 block 的索引

git - Google App Engine Push-to-Deploy 与 master 以外的其他分支

php - CakePHP fatal error : Call to a member function check() on a non-object?

php - Laravel 5.2 Auth 总是重定向到登录页面(可能 session 不持久)

python - 如何在 MySQL Insert 语句中使用 python 变量,出现元组错误,请提出建议

python:互斥位置参数

reactjs - 使用 Google Cloud Datastore 和 ReactJS 登录表单