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