Die Website webapp2 (http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html) hat eine Anleitung zur Verwendung webapp2_extras.jinja2
, und der Code ist unten.Warum dekorieren Jinja2-Instanzen mit @ webapp2.cached_property
Meine Frage ist: Warum cache die webapp2_extras.jinja2.Jinja2
Instanz Rückgabe von return jinja2.get_jinja2(app=self.app)
? Ich überprüfte den Code und fand, dass es die Jinja2
Instanz in einer Instanz von BaseHandler
zwischenspeichert, die nach der Anfrage zerstört wird, also warum stören, es zu cachen? Hab ich hier etwas verpasst?
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)
Lustig du hast gefragt, dass ... nur einen Blick auf die gleiche und nicht den Punkt auch nicht bekommen ... Es gibt einen Punkt auf cached_property natürlich für Dinge, die mehr als einmal in einer Anfrage verwendet ... – thomasf1