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キャッシュされていることがわかりました。このインスタンスは、リクエスト後に破棄されます。なぜわざわざキャッシュするのでしょうか? ここで何か見逃しましたか?Jinja2BaseHandler
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)