python - Django 表单模板转义
问题描述
{% if form.subject.errors %}
<ol>
{% for error in form.subject.errors %}
<li><strong>{{ error|escape }}</strong></li>
{% endfor %}
</ol>
{% endif %}
我从模板中获取了上面的代码,在“form”键下传入了一个表单但是,我以前从未遇到过|escape?是 | or 位运算符?
解决方案
不,这是|escape
模板过滤器 [Django-doc]。正如文档所指定的:
转义字符串的 HTML。具体来说,它进行了以下替换:
<
被转换为<
>
被转换为>
'
(单引号)转换为'
"
(双引号)转换为"
&
被转换为&
将转义应用于通常会对结果应用自动转义的变量只会导致完成一轮转义。因此即使在自动转义环境中使用此功能也是安全的。如果要应用多个转义通道,请使用
force_escape
过滤器。
它可能在一个{% autoscape off %}…{% endautoescape %}
块 [Django-doc]中,因为默认情况下 Django 已经转义了这些项目。因此,它将确保如果变量是一个包含可解释为 html 的字符的字符串,则会对这些字符进行转义以防止这种情况发生。
推荐阅读
- excel - 使用 selenium 将文件下载到特定目录
- ios - 如何以编程方式制作可重用的 UILabel 和 UITextField
- javascript - electron app.on() 未定义错误,如何解决?
- css - 预定义的 CSS 类不起作用 ionic3
- mongodb - 在 Mongo 中投影嵌套文档
- java - 如何在 Intellij 的依赖项中查看源代码(包括注释)
- java - 函数 listitem.getMeasuredHeight() 只给我一行的高度,因为 listitem 是 edittext
- selenium - 在 Katalon Studio 中计算项目、行、用户等
- jquery - 将另一个网站嵌入我的网站的方法
- javascript - 选择从 push.apply([user.email, user.groupName]) 构建的数组的左侧部分