10

假设我有这个字符串:

s = '<p>Hello!</p>'

当我将此变量传递给模板时,我希望将其呈现为原始 html。查看文档,我发现我可以使用安全过滤器:

{{s|safe}}

或禁用自动转义:

{%autoescape off}
{{s}}
{%endautoescape%}

或在 python 代码中声明它是安全的:

from django.utils.safestring import mark_safe
s = mark_safe(s)

这些选项都不适合我。无论我做什么,字符串都显示为:

<p>Hello!</p>

我一定错过了什么,只是不知道是什么。某处是否有一些安全设置不允许转义?

编辑:奇怪的是,我重新启动计算机后问题似乎消失了。

4

3 回答 3

10

我认为你应该写如下

{{s|escape|safe}}

我没问题

于 2010-12-10T03:04:01.957 回答
2

您几乎涵盖了它,这些确实是禁用自动转义的所有方法。

你确定你所说的价值实际上是s = '<p>Hello!</p>'

我的预感是你在那个字符串的某个地方有额外的转义......

于 2009-05-15T22:56:45.400 回答
-4

看HTML源码,是不是转义了!???我不这么认为。它应该是一个字母一个字母地打印,就像这样:

<
p
>
H
E
L
L
O
<
/
>
于 2010-01-21T13:37:43.177 回答