2017-05-26 6 views
1

私は、ボトルとpeeweeをバックエンドのフレームワークとして、sqlite3をDBとして使用しています。そしてsummernoteは正面のテキストエディタです。コードをDBに保存するのに成功しますが、DBから取得するときにテキストを表示できませんでした。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"))) 

私は最初にコード化の問題だと思ったので、ユニコードを使用して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}}'); #を "to"に変更すると、Summernoteのhtmlタグプロパティの値が二重引用符で囲まれ、!とコンテンツの間の空白を削除する必要があります。 – snsyzb

関連する問題