4

私が使用しているビューは、文字列を html テンプレートに返します。返される文字列には、テンプレートで正しく表現されていない特殊文字が含まれています。簡単に言うと、ビューから返される文字列は次のようになります。

test = "\"Foo bar\""
return render_to_response('index.html', {'test': test})

そして、次のように html テンプレートに表示されます。

& quot;Foo bar& quot;

正しく表示されるようにエンコードを修正するにはどうすればよいですか?

4

2 に答える 2

12

印刷時にセーフ フィルターを使用します。

{{ test|safe }}

または、ビューで次の操作を行います。

from django.utils.safestring import mark_safe
test = mark_safe("\"Foo bar\"")

これを行うことで、文字列の内容が安全であり、HTML エスケープが必要ないことを Django に伝えていることに注意してください。ユーザーから送信される可能性のあるものをすべて配置する場合は、XSS 攻撃に対して脆弱なままになるため、注意して使用してください。

于 2009-04-27T16:20:08.573 に答える
0

最善の策は、これについて詳しく説明している Django のドキュメントを参照することです。

https://docs.djangoproject.com/en/2.0/ref/templates/language/#automatic-html-escaping

于 2009-04-28T07:14:53.900 に答える