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
的实例中,这个实例将在请求后被销毁,那么为什么还要缓存呢?我在这里错过了什么吗?
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)