226

Flask と SQLAlchemy の管理者を作成しています。さまざまな入力の HTML をビューに渡したいと考えていますrender_template。テンプレート フレームワークは HTML を自動的にエスケープするように見えるため、すべての<"'>文字が HTML エンティティに変換されます。HTML が正しくレンダリングされるようにするにはどうすれば無効にできますか?

4

7 に答える 7

453

値をレンダリングするときに自動エスケープをオフにするには、|safeフィルターを使用します。

{{ something|safe }}

信頼できないデータをエスケープせずにレンダリングすることはクロスサイト スクリプティングの脆弱性であるため、これは信頼できるデータに対してのみ実行してください。

于 2010-07-08T17:48:14.937 に答える
137

MarkupSafeは、Jinja の自動エスケープ動作を提供します。これをインポートMarkupして使用して、コードから安全な HTML 値を宣言できます。

from markupsafe import Markup
value = Markup('<strong>The HTML String</strong>')

|safeそれをテンプレートに渡すと、フィルターを使用する必要はありません。

于 2010-07-16T16:00:19.423 に答える