El sitio webapp2 (http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html) tiene un tutorial sobre cómo usar webapp2_extras.jinja2
, y el código está a continuación.por qué decorar las instancias de Jinja2 con @ webapp2.cached_property
Mi pregunta es: ¿por qué caché la instancia webapp2_extras.jinja2.Jinja2
return by return jinja2.get_jinja2(app=self.app)
? Comprobé el código de @webapp2.cached_property
y encontré que almacena en caché la instancia Jinja2
en una instancia de BaseHandler
, que se destruirá después de la solicitud, ¿por qué molestarse en almacenarla en caché? ¿Me perdí algo aquí?
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)
Es curioso que hayas preguntado eso ... solo eché un vistazo a lo mismo y tampoco entiendo el punto ... Hay un punto en cached_property por supuesto para cosas usadas más de una vez en una solicitud ... – thomasf1