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 回答