2012-12-23 16 views
1

我正在使用Flask和Sqlite。從sqlite數據庫獲取新行不被解釋?

我帶一些字符串,其中包含換行符,並將其存儲在數據庫中。在稍後的一點,我從數據庫中獲取它並將其包含在某個頁面上,並且該字符串顯示爲沒有換行符。那是什麼?

例如,如果我有

{{ entry.content }} 

在我的模板,並存儲該條目有內容「你好\ nhello」,則顯示「hellohello」頁面上。

但是如果我有

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

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

在我的模板,它會顯示 「你好你好
」 或 「你好 你好」 的頁面上。

所以我的印象是,換行符只是不被瀏覽器解釋和顯示。我究竟做錯了什麼?

回答

2

嘗試{{entry.content | safe}}這樣Flask/Jinja不會逃離你的HTML。

(請注意,儘管任何用戶輸入的內容(包括腳本標籤)都會按原樣輸出。如果您確實要謹慎並且只允許
標籤,您可能需要編寫自己的清理程序:Jinja2 escape all HTML but img, b, etc