我需要在网页中渲染一些代码,并突出显示。我正在使用 Flask 并发现我可以使用 jinja2-highlight 。它工作得很好,但我有一些问题。
我尝试过的:
{% highlight 'python' %}
{{ item.text }}
{% endhighlight %}
似乎有效,我有 40 行代码,但所有特殊字符(如 " ...)都显示为这样。所以我将 |safe 添加到行 {{ item.text }} 中。现在,所有字符都正常,但我没有看到完整的代码,只有 5 行(第五行已完成)。
我想我知道问题是什么,但不知道如何解决。
我的代码中有一些像 or 这样的行,它似乎没有被转义。知道为什么 jinja2 不转义 <> 吗?
我也不清楚 |safe 的安全问题。服务器有什么风险?
最佳答案
item.text|safe
应该有帮助。看来您两次转义了代码。您可能启用了某种自动转义。
只要您不共享网站的实际代码,您就不必关心服务器安全。
关于python - jinja2 flask 转义 jinja2-highlight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22287856/