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 渲染器。 返回 jinja2.get_jinja2(app=self.app) def render_response(self, _template, **context): # 渲染一个模板并将结果写入响应。 rv = self.jinja2.render_template(_template, **context) self.response.write(rv)