テンプレート内で実行できますか、それともPythonコードで実行する必要がありますか?
da <ngero> u&scharsを含む可能性のある変数があります。jinja2でエスケープするにはどうすればよいですか?
また、すべてを自動エスケープするように環境に指示することもできます。
e = Environment(loader=fileloader, autoescape=True)
注:jinja1ではこれはauto_escapeです
プログラムでhtmlをエスケープしたい場合は、次のように実行できます(例)。
>>> import jinja2
>>> jinja2.__version__
'2.6'
>>> a
'<script>alert("yy")</script>'
>>> jinja2.escape(a)
Markup(u'<script>alert("yy")</script>')
>>> str(jinja2.escape(a))
'<script>alert("yy")</script>'
Flaskにはtojson
フィルターが組み込まれています。
文字列チェックを実行して、対応するエスケープ文字に置き換えることができます。
例:string=I am a special character <
次の手順を実行します。
string.replace("<","< ;")
コードでは、tと;の間のスペースに注意してください。削除されました。代わりに<を表示するようにフォーマットされるため、ここでこれを排除することはできません:P
次に、jinja2を使用してフォーマットされた文字列を出力します。<がディスプレイに表示されます。