Muh*_*ood 3 python jinja2 flask
我正在遵循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)
来自文档:
\n\n\n从模板生成 HTML 时,始终存在变量包含影响生成的 HTML 的字符的风险。有两种方法:
\n\n
\n- 手动转义每个变量;或者
\n- 默认情况下自动转义所有内容。
\nJinja 两者都支持。
\n
在默认情况下自动转义所有内容的模式下,要将内容标记为安全,因此不需要转义,请使用过滤器:
\n| safe\nRun Code Online (Sandbox Code Playgroud)\n\n
| 归档时间: |
|
| 查看次数: |
2720 次 |
| 最近记录: |