我正在使用Flask和Jinja2模板来构建静态网页。我从.txt文件中获取页面文本。我想做的是从.txt文件中传递文字HTML标记,并在DOM中对其进行解释。当前,它以文字形式表示的文本,如果我查看页面源代码,则标记将以转义字符进行解释。
文本
The map uses the <a href="google.com">Google</a> API.
HTML
<p>{{ text }}</p> <!-- text above goes here -->
anchor标签未表示为HTML标签,而是这样的:
<a href="google.com">google</a>
我该如何实现?
这是因为Flask会自动转义模板变量中包含的所有HTML标记,以避免常见的安全问题。
有关如何禁用此功能的信息,请参见[文档](https://flask.palletsprojects.com/en/1.1.x/templating/#controlling-autoescaping)-一种简单的方法是将{{ text}}
替换为{{ text|safe}}
。
但是请注意,如果text
变量可以来自“不安全”来源,例如不受信任的用户,则不能执行此操作。