【问题标题】:Special symbol with context variable带有上下文变量的特殊符号
【发布时间】:2019-03-15 09:15:05
【问题描述】:

在我的 django 模板中,我有:

<strong>Copyright &copy; </strong> {{ copyright }}

地点:

copyright = "Company &copy; 2014-2018"

其中显示:

Copyright © Company &copy; 2014-2018

为什么第一个符号可以,第二个不行?

【问题讨论】:

    标签: html django templates


    【解决方案1】:

    Django 模板escapes variables,所以&amp;amp;copy;在呈现的模板中变为&amp;amp;copy,在浏览器中显示为&amp;copy;

    您可以通过在视图中使用mark_safe 来避免转义,

    from django.utils.safestring import mark_safe
    copyright = mark_safe("Company &copy; 2014-2018")
    

    或者通过在模板中使用safe 过滤器。

    {{ copyright|safe }}
    

    请注意,仅将此字符串标记为安全是安全的,因为您可以控制该值。您应该始终逃避用户的输入,否则您很容易受到 XSS 攻击。

    【讨论】:

      【解决方案2】:

      默认情况下,Django 在标签中自动转义 html。如果你想包含 html 使用

       {{copyright|safe}}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-29
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        相关资源
        最近更新 更多