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