webapp2サイト(http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html)にはwebapp2_extras.jinja2
の使い方に関するチュートリアルがあり、コードは以下のとおりです。@ webapp2.cached_propertyでJinja2インスタンスを飾る理由
質問:webapp2_extras.jinja2.Jinja2
インスタンスをキャッシュする理由はreturn jinja2.get_jinja2(app=self.app)
ですか?私は@webapp2.cached_property
のコードをチェックし、BaseHandler
のインスタンスにJinja2
インスタンスをキャッシュすることが判明しました。要求の後に破棄されるので、なぜキャッシュするのが嫌ですか?私はここで何かを逃しましたか?
import webapp2 from webapp2_extras import jinja2 class BaseHandler(webapp2.RequestHandler): @webapp2.cached_property def jinja2(self): # Returns a Jinja2 renderer cached in the app registry. return jinja2.get_jinja2(app=self.app) def render_response(self, _template, **context): # Renders a template and writes the result to the response. rv = self.jinja2.render_template(_template, **context) self.response.write(rv)
面白そうなことを聞いたことがあります...同じことを見ていて、どちらかのポイントを得ることができません... 1つのリクエストで2回以上使用されたもののためのcached_propertyのポイントがあります... – thomasf1