autoescapeの機能をサポートするために、webappアプリケーションで使用するjinja2をインストールすることにしました。そこで私はpython 2.5にjinja2をインストールし、プロジェクト内でそのディレクトリを指すようにシンボリックリンクを作成しました。ほとんどの場合、うまく動作しています。google app engine webappのjinja2 autoescapeに関する問題
EXCEPT、私は実際に{%のautoescape真%}タグを使用しようとすると、私はメッセージを取得:彼らはドキュメントでそれを持っているように
File "/Users/me/project/templates/_base.html", line 1, in template
{% autoescape true %}
TemplateSyntaxError: Encountered unknown tag 'autoescape'.
を私はタグを使用しています:
from jinja2 import Environment, FileSystemLoader, TemplateNotFound
from jinja2.ext import autoescape
そして、それはだから、インポートが正常に動作している:私のハンドラファイル私は、関連するものを輸入しています以内
{% autoescape true %} stuff {{var1}} stuff {{var2}}{% endautoescape %}
エラーを投げることはありません。私は何か間違っているのですか、あるいはおそらくext.pyのようにjinja2自体に問題がありますか?
UPDATE: 私は以下sharthの提案を試してみましたが、同じ結果を得ました。彼の提案を使用して私の更新されたハンドラがあります。
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)
また、私はautoescapeタグを使用しない限り、正常に動作します。
jinja2オートコンプリートタグがtipfyフレームワークにも記載されているように機能しないことに気付きました。これは、私がそれをどのように使っているのかという問題ではなく、jinja2のバグだと思うようになる。 –