webapp2 サイト ( http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html ) には、 の使用方法に関するチュートリアルがwebapp2_extras.jinja2
あり、コードは以下のとおりです。
私の質問は、なぜwebapp2_extras.jinja2.Jinja2
インスタンスの戻り値をキャッシュするのreturn jinja2.get_jinja2(app=self.app)
ですか? のコードを確認したところ、 のインスタンスにインスタンスが@webapp2.cached_property
キャッシュされていることがわかりました。このインスタンスは、リクエスト後に破棄されます。なぜわざわざキャッシュするのでしょうか? ここで何か見逃しましたか?Jinja2
BaseHandler
webapp2 のインポート webapp2_extras から jinja2 をインポート クラス BaseHandler (webapp2.RequestHandler): @webapp2.cached_property def jinja2(自己): # アプリのレジストリにキャッシュされた Jinja2 レンダラーを返します。 return jinja2.get_jinja2(app=self.app) def render_response(self, _template, **context): # テンプレートをレンダリングし、結果をレスポンスに書き込みます。 rv = self.jinja2.render_template(_template, **context) self.response.write(rv)