Ho deciso di installare jinja2 da utilizzare con la mia applicazione webapp per supportare la funzionalità autoescape. Così ho installato jinja2 in python 2.5 e creato un collegamento simbolico all'interno del mio progetto per puntare a quella directory. Funziona principalmente bene.problema con jinja2 autoescape nella webapp del motore dell'app google
TRANNE, quando in realtà si tenta di utilizzare il {% autoescape vero%} tag, ottengo il messaggio:
File "/Users/me/project/templates/_base.html", line 1, in template
{% autoescape true %}
TemplateSyntaxError: Encountered unknown tag 'autoescape'.
sto usando i tag come hanno nelle docs:
{% autoescape true %} stuff {{var1}} stuff {{var2}}{% endautoescape %}
Entro il mio file handler sto importando le cose rilevanti:
from jinja2 import Environment, FileSystemLoader, TemplateNotFound
from jinja2.ext import autoescape
e l'importazione funziona bene perché è non lanciare un errore. Sto facendo qualcosa di sbagliato, o c'è un problema con jinja2 stesso, come forse in ext.py?
UPDATE: Ho provato il suggerimento di sharth qui sotto e ha ottenuto lo stesso risultato. Ecco il mio gestore aggiornato che usa il suo suggerimento.
class MainHandler(BaseHandler):
def get(self):
self.context['testEscape']='<script type="javascript">alert("hi");</script>'
env = Environment(loader=FileSystemLoader([os.path.join(os.path.dirname(__file__), 'templates')]), autoescape=False)
template = env.get_template('index.html')
content = template.render(self.context)
self.response.out.write(content)
Anche in questo caso, funziona bene finché non utilizzo il tag autoescape.
Ho appena notato che il tag di completamento automatico jinja2 non funziona come documentato anche nel framework di tipfy. Il che mi porta a pensare che sia un bug in jinja2, non un problema con il modo in cui lo sto usando. –