Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因是为了安全。 但是有的时候我们可能不希望这些HTML元素被转义。 为了在Django中关闭HTML的自动转义有两种方式:

一、一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

比如:

<p>这行代表会被自动转义</p>: {{ data }}
<p>这行代表不会被自动转义</p>: {{ data|safe }}

其中第二行我们关闭了Django的自动转义。

二、通过{%autoescape off%}的方式关闭整段代码的自动转义,

比如下面这样:

{% autoescape off %}
    Hello {{ name }}
{% endautoescape %}