在django中渲染后不显示HTML标记

时间:2013-10-20 18:10:47

标签: python django python-2.7 django-templates

我正在学习django并且想把网站变成一个实用的网站,所以我就在这里。但是在html中遇到了<textarea>标记的问题。

显然,我的网页上有<textarea>,这是长文本的用户输入区域,我在数据库中存储给定输入,其中包含一些HTML标签,如<div>, <span>, <body>作为网络艺术,以及何时它使用模板呈现自动应用,并且由于安全问题,所有标记(如<div>, <span>, <body>)都显示为正常单词。 当我使用安全过滤器时,无法在网页上打印所有HTML标签,因为我无法在网页上打印<b><em>

但我希望像<b></b>, <em></em>, <code></code>, <li></li>这样的一些html标签可以根据用户的需要进行渲染,我的意思是当一位作家写一篇关于HTML的艺术作品时,他可以将<b></b>写在他的艺术作为正常的单词中但是当他需要加粗一些单词,他也可以使用<b></b> HTML标记。

1 个答案:

答案 0 :(得分:0)

您可以使用django-html_sanitizer应用。将其添加到项目后,您可以使用它删除/转义所有标记,但您选择离开的标记除外。

模板中的示例用法:

{% strip_html your_text "em, b, code, li" %}