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)