首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Flask/Jinja2将HTML传递给模板

使用Flask/Jinja2将HTML传递给模板
EN

Stack Overflow用户
提问于 2010-07-09 01:34:37
回答 5查看 131.9K关注 0票数 219

我正在为Flask和SQLAlchemy构建一个管理员,我想使用render_template将不同输入的超文本标记语言传递给我的视图。模板框架似乎会自动转义HTML,因此所有<"'>字符都会转换为HTML实体。如何禁用它才能正确地呈现HTML?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-09 01:48:15

若要在渲染值时关闭自动转义,请使用|safe过滤器。

{{ something|safe }}

只对您信任的数据执行此操作,因为呈现不受信任的数据而不进行转义是一个跨站点脚本漏洞。

票数 444
EN

Stack Overflow用户

发布于 2010-07-17 00:00:19

MarkupSafe提供了Jinja的自动转义行为。您可以导入Markup并使用它从代码中声明一个HTML safe值:

from markupsafe import Markup
value = Markup('<strong>The HTML String</strong>')

把它传递给模板,你就不必对它使用|safe过滤器了。

票数 132
EN

Stack Overflow用户

发布于 2019-06-28 21:16:47

当你有很多不需要转义的变量时,你可以使用autoescape override块:

{% autoescape false %}
{{ something }}
{{ something_else }}
<b>{{ something_important }}</b>
{% endautoescape %}
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3206344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档