在我的Django模板中,我有:
<strong>Copyright © </strong> {{ copyright }}
位置:
copyright = "Company © 2014-2018"
哪个显示:
Copyright © Company © 2014-2018
为什么第一个符号可以,而第二个符号不能?
答案 0 :(得分:3)
Django模板escapes variables,所以©
;在呈现的模板中变成&copy
,在您的浏览器中显示为©
。
您可以通过在视图中使用mark_safe
来避免转义,
from django.utils.safestring import mark_safe
copyright = mark_safe("Company © 2014-2018")
或使用模板中的safe
过滤器。
{{ copyright|safe }}
请注意,只有安全地将此字符串标记为安全,因为您可以控制该值。您应该始终避开用户的输入,否则您将容易受到XSS攻击。
答案 1 :(得分:2)
Django默认情况下会自动在标记中转义html。如果要包含html,请使用
{{copyright|safe}}