python - django模板中的unescape

时间:2012-04-02 08:03:15

标签: django google-app-engine django-templates escaping

a ='abc'

文章中显示的Html特殊字符。

> {{ a | escape }}

'abc'

当我证明我想要无视时。

> {{ a | escape | safe }}

TemplateSyntaxError: Invalid filter: 'safe'

发生错误。

> from django.utils.safestring import mark_safe

> a = mark_safe(a)

也会发生此错误。

Django不会使当前的电流不适用于安全吗?

你对如何unescape有任何想法吗?

(我正在google-appengine开发。)

1 个答案:

答案 0 :(得分:2)

您所询问的内容并不完全清楚,但您可以使用autoescape template tag禁用Django的自动转义功能。例如:

>>> from django.template import Template, Context
>>> c = Context(dict(a = '<a href="#fragment">Link</a>'))
>>> Template("{{ a }}").render(c)
u'&lt;a href=&quot;#fragment&quot;&gt;Link&lt;/a&gt;'
>>> Template("{% autoescape off %}{{ a }}{% endautoescape %}").render(c)
u'<a href="#fragment">Link</a>'

mark_safe也有效:

>>> from django.utils.safestring import mark_safe
>>> Template("{{ a }}").render(Context(dict(a = mark_safe(a))))
u'<a href="#fragment">Link</a>'