1

セッションミドルウェアとしてビーカー付きのボトルを使用しています。レンダリング時にセッション オブジェクトを指定せずに、すべての mako テンプレートに含めたいと思います。

これの代わりに:

return mako_template("myView", { 
    "session" : bottle.request.environ.get('beaker.session') 
})

これを行うだけです:

return mako_template("myView")

これは可能ですか?もしそうなら、どのように?

4

1 に答える 1

4

Mako テンプレートについてはわかりませんが、Bottle SimpleTemplates の場合は BaseTemplate.default を使用できます。

bottle.BaseTemplate.defaults['session'] = bottle.request.environ.get('beaker.session')

ただし、アプリケーションのインスタンス化時に設定しているため、 bottle.request が有効でない場合があります。そのため、値が要求されたときに遅延評価を行うものに変える必要があるかもしれません。

おそらく、BaseTemplate.defaults は Mako テンプレートに供給されますか、それとも Mako はデフォルトを設定するための同様のメカニズムを提供するのでしょうか?

これがあなたを正しい方向に導くのに役立つことを願っています。

于 2013-09-02T21:33:49.227 に答える