【问题标题】:Unescape html entities from JSON in Django templates在 Django 模板中从 JSON 中转义 html 实体
【发布时间】:2013-11-03 10:29:25
【问题描述】:
我从服务器获得了被转义的响应:
'item':'<b> Some Data </b>'
我使用item= json.loads(response)将这些数据传递给模板
默认情况下,django 模板(在 Google App Engine 中)会进一步转义,
所以它的双重逃逸结果。
我可以使用safe 删除一级转义,例如:
{{item|safe}}
如何将实体转为对应的符号?
【问题讨论】:
标签:
python
google-app-engine
django-templates
html-entities
【解决方案1】:
警告 - 这不是推荐的解决方案。您应该改用自动转义(检查Rafael's answer)。
以下应该做的工作。
response.replace('&amp;', '&').replace('&lt;', '<').replace('&gt;', '>')
更新 -
在Jan Schär 的建议下,您应该使用以下内容:
response.replace('&lt;', '<').replace('&gt;', '>').replace('&amp;', '&')
因为,如果 response 是 &amp;gt;,它将导致 &gt; 而不是正确的 &gt;。你应该在最后解决&amp;。
【解决方案2】:
你可以这样做:
{% autoescape off %}
{{ your_text_var }}
{% endautoescape %}