【发布时间】:2019-03-15 09:15:05
【问题描述】:
在我的 django 模板中,我有:
<strong>Copyright © </strong> {{ copyright }}
地点:
copyright = "Company © 2014-2018"
其中显示:
Copyright © Company © 2014-2018
为什么第一个符号可以,第二个不行?
【问题讨论】:
在我的 django 模板中,我有:
<strong>Copyright © </strong> {{ copyright }}
地点:
copyright = "Company © 2014-2018"
其中显示:
Copyright © Company © 2014-2018
为什么第一个符号可以,第二个不行?
【问题讨论】:
Django 模板escapes variables,所以&amp;copy;在呈现的模板中变为&amp;copy,在浏览器中显示为&copy;。
您可以通过在视图中使用mark_safe 来避免转义,
from django.utils.safestring import mark_safe
copyright = mark_safe("Company © 2014-2018")
或者通过在模板中使用safe 过滤器。
{{ copyright|safe }}
请注意,仅将此字符串标记为安全是安全的,因为您可以控制该值。您应该始终逃避用户的输入,否则您很容易受到 XSS 攻击。
【讨论】:
默认情况下,Django 在标签中自动转义 html。如果你想包含 html 使用
{{copyright|safe}}
【讨论】: