2017-05-26 55 views
1

我在後臺使用bottle和peewee作爲框架,sqlite3作爲數據庫。 summernote是前面的文本編輯器。成功將代碼保存到數據庫中,但在從數據庫中檢索時未能顯示文本。Summernote無法轉換html代碼

DB數據: The Draft column is the html

源代碼:

前:

$('#summernote').summernote("code", "{{content}}"); 

後端:

template('apps_post_editer', appName='Post New', pid=newPost.id, title=('' if newPost.title is None else str(newPost.title)), content=('' if newPost.draft is None else unicode(str(newPost.draft), "utf-8"))) 

我認爲這是開始時的編碼問題,所以我使用unicode來打開utf-8中的值,但不起作用。而且也沒有隻str(newPost.draft)

結果: You can see that the html code is not converted

問: 爲什麼會發生這樣的?有沒有解決方法?

非常感謝。

更新:對不起,這是我的第一個問題,不知道爲什麼圖片不顯示...請點擊鏈接以獲得更多的細節...... OK ...需要10聲譽

回答

1

當你想用瓶子渲染來自數據庫的HTML時,你必須告訴渲染引擎該內容是安全渲染的,以避免XSS攻擊。

隨着布特爾您可以禁用轉義像這樣的表達式:

{{! summernotecontent}} 
你的情況

這將是:

$('#summernote').summernote("code", "{{! content}}"); 

你可以找到關於此主題的文檔中瓶here

+0

哦,是的!它的工作原理,只需要對$('#summernote')進行一些修改。summernote('code','{{!content}}');由於Summernote中的html標籤屬性的值被保存在雙引號中,因此需要刪除!和內容之間的空白,最後,非常感謝您的幫助! – snsyzb