Il sito webapp2 (http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html) ha un tutorial su come utilizzare webapp2_extras.jinja2
e il codice è di seguito.perché decorare istanze Jinja2 con @ webapp2.cached_property
La mia domanda è: perché memorizzare l'istanza della cache webapp2_extras.jinja2.Jinja2
entro il return jinja2.get_jinja2(app=self.app)
? Ho controllato il codice @webapp2.cached_property
e ho scoperto che memorizza nella cache l'istanza Jinja2
in un'istanza di BaseHandler
, che verrà distrutta dopo la richiesta, quindi perché preoccuparsi di memorizzarla nella cache? Mi sono perso qualcosa qui?
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)
Divertente mi hai chiesto ... ho appena dato un'occhiata allo stesso modo e non riesco a capire il punto ... C'è un punto in cached_property, ovviamente, per le cose usate più volte in una richiesta ... – thomasf1