我正在使用Flask和Sqlite。
我接受一些包含换行符的字符串,并将其存储在db中。稍后我会从数据库中获取它并将其包含在某个页面上,并且字符串显示没有换行符。那是什么?
例如,如果我有
{{ entry.content }}
在我的模板中,存储的条目内容为“hello \ nhello”,它在页面上显示“hellohello”。
但是,如果我有
{{ entry.content.replace('\r\n','<br />') }}
或
{{ entry.content.replace('\r\n',' ') }}
在我的模板中,它会显示“hello
hello”或“hello
你好“在页面上。
所以我的印象是浏览器没有解释和显示换行符。我做错了什么?
答案 0 :(得分:2)
尝试{{entry.content | safe}},这样Flask / Jinja就无法逃脱您的HTML。
(但要小心,因为任何用户输入的内容,包括脚本标签,都将按原样输出。如果你真的想要谨慎并且只允许新标签你可能想要写自己的洗涤器:Jinja2 escape all HTML but img, b, etc)