我正在为Flask和SQLAlchemy构建一个管理员,我想将不同输入的HTML传递给我的视图render_template.模板框架似乎自动转义html,因此所有<"'>都转换为html实体.如何禁用它以便HTML呈现正确?
我正在遵循Flask教程,其中他在jinja2模板中使用“ | safe”。为什么我们需要这个管道符号和安全性?
在不使用安全的情况下,它会打印所有html标签。
通过使用| safe,它显示正确的格式。为什么这样工作?
下面是jinja2代码:
{% extends "layout.html" %}
{% block body %}
<h1>{{article.title}}</h1>
<small>Written by {{article.author}} on {{article.create_date}}</small>
<hr>
<div>
{{article.body | safe}}
</div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)