1

Flask と Sqlite を使用しています。

改行を含む文字列を取得し、データベースに保存します。後で、データベースから取得してページに含めると、文字列は改行なしで表示されます。それとは何ですか?

たとえば、私が持っている場合

{{ entry.content }}

私のテンプレートでは、保存されたエントリに「hello\nhello」というコンテンツがあり、ページに「hellohello」が表示されます。

しかし、私が持っている場合

{{ entry.content.replace('\r\n','<br />') }}

また

{{ entry.content.replace('\r\n','&#13;') }}

私のテンプレートでは、ページに「hello
hello」または「hello hello」と表示されます。

私の印象では、改行文字はブラウザによって解釈および表示されていません。私は何を間違っていますか?

4

1 に答える 1

2

{{entry.content | safe}}を試して、Flask/JinjaがHTMLをエスケープしないようにします。

(ただし、スクリプトタグを含む、ユーザーが入力したコンテンツはそのまま出力されるので注意してください。本当に注意して
タグのみを許可したい場合は、独自のスクラバーを作成してください。Jinja2はimg以外のすべてのHTMLをエスケープします。 、bなど

于 2012-12-23T03:38:04.617 に答える