我正在使用带烧杯的瓶子作为会话中间件。我想在我的所有mako模板中包含我的会话对象,而不在渲染时指定它:
而不是:
return mako_template("myView", {
"session" : bottle.request.environ.get('beaker.session')
})
这样做:
return mako_template("myView")
这可能吗?如果是这样,怎么样?
答案 0 :(得分:4)
我不知道Mako模板,但对于Bottle SimpleTemplates,您可以使用BaseTemplate.default:
bottle.BaseTemplate.defaults['session'] = bottle.request.environ.get('beaker.session')
但是,由于您在应用程序实例化时设置了该值,因此bottle.request可能无效。因此,您可能需要将其转换为在请求值时进行延迟评估的内容。
也许BaseTemplate.defaults被输入Mako模板,或者Mako提供了类似的机制来设置默认值?
我希望这有助于指明你正确的方向。