jinja2 flask 转义 jinja2-highlight
我需要在网页上显示一些代码,并且要有高亮效果。我在用Flask的时候发现可以使用jinja2-highlight。这个工具很好用,但我遇到了一些问题。
我尝试过的代码:
{% highlight 'python' %}
{{ item.text }}
{% endhighlight %}
看起来是可以的,我有40行代码,但所有特殊字符像" ... 都显示成这样。所以我在{{ item.text }}这一行加上了|safe。现在所有字符都正常了,但我只看到5行代码(第五行是完整的)。
我觉得我知道问题出在哪里,但不知道怎么解决。
我的代码中有一些行像是<或>,看起来没有被转义。你知道为什么jinja2不转义<>吗?
我对使用|safe的安全性问题也不太清楚。这样会给服务器带来什么风险呢?
1 个回答
1
item.text|safe
这个写法可以帮你解决问题。看起来你可能是把代码转义了两次。你可能开启了某种自动转义的功能。
只要你不分享你网站的实际代码,就不需要担心服务器的安全性。