📜  jinja 避免自动转义 - Html (1)

📅  最后修改于: 2023-12-03 15:02:08.051000             🧑  作者: Mango

Jinja 避免自动转义 - Html

当我们使用{{ variable }}语句显示变量时,Jinja Template Engine默认自动进行HTML转义。但是有些情况下我们不希望这样做,因为我们想要显示HTML标记或其他特殊字符。这时候,我们可以使用Jinja的safe过滤器或者raw语言扩展来避免自动转义。

使用safe过滤器

在模板中,我们可以使用safe过滤器,告诉Jinja该变量是安全的,值不需要进行HTML转义。例如:

<p>{{ variable|safe }}</p>

在这个例子中,我们使用了safe过滤器来告诉Jinja,我们不需要对variable进行HTML转义。

使用raw语言扩展

raw语言扩展可以让你更方便的避免自动转义。我们可以使用{% raw %}和{% endraw %}标记来告诉Jinja,在这个区域内的所有内容都不需要进行HTML转义。例如:

{% raw %}
<p>{{ variable }}</p>
{% endraw %}

在这个例子中,我们使用了raw语言扩展来告诉Jinja,我们不需要对variable进行HTML转义。

总结

在Jinja中,我们可以使用safe过滤器或者raw语言扩展来避免自动转义,从而在模板中展示HTML标记或其他特殊字符。

注意:请谨慎使用这些方法,如果一个变量在处理过程中包含了恶意代码,那么它是不安全的。