【Django】SQLに格納したHTMLをタグを含めそのまま出力する
【Django】SQLに格納したHTMLをタグを含めそのまま出力する
Laravelもそうでしたが、フレームワークではDBに格納された値は通常、テキストとして扱われ処理されます。
HTMLタグが入っていても、タグ自体をテキストとして読んで表記します。
これは、ウィルスなどの悪意あるスクリプトが格納されてしまったとしても(テキストとして取り出すことで)処理されない様にする仕組みになるので、とても重要で意味のある仕様です。
でも、CMSを作ろうとした時これは足かせになってきます。
と言う事で、HTMLタグを含めそのまま出力する方法です。
DBに格納したHTMLをタグをタグとしてそのまま出力する
1 2 3 4 5 |
#htmlテンプレート {% autoescape off %} {{ text }} {% endautoescape %} |
たったこれだけです。
autoescapeと言う関数が用意されてて、こいつがテキスト化したりを処理していてくれてたようです。
で、その機能をOFFにすればHTMLタグはタグとして出力されると。
何とも理解しやすい機能ですね。
まとめ
テーブルからのレコード抽出とHTMLをそのまま吐き出す機能が出来上がればCMSの基礎部分は殆ど完了です。
あとはデザイン的な部分とコンテンツの登録部分の実装だな。
-
前の記事
【Django】TemplateResponseMixin requires either a definition of ‘template_name’ or an implementation of ‘get_template_names() 2020.11.30
-
次の記事
【Bootstrap】グラフ作成で横軸の日付が表示されなかった理由 2020.12.01
コメントを残す