可以在AppEngine模板中使用html编码输出吗?

时间:2009-05-20 17:09:32

标签: django templates django-templates html-encode

所以,我正在传递一个包含html的“content”属性的对象。

<div>{{ myobject.content }}</div>

我希望能够输出内容,以便将字符呈现为html字符。

“conent”的内容可能是:&lt; p&gt; Hello&lt; / p&gt;

我希望将其发送到浏览器:&amp; lt; p&amp; gt; Hello&amp; lt; / p&amp; gt;

我可以在模板中自动执行此操作吗?

2 个答案:

答案 0 :(得分:4)

是的,{{ myobject.content | escape }}应该有所帮助(假设您的意思是Django模板 - 没有特定的“App Engine”模板系统,GAE应用程序经常使用Django模板系统);如果你想要两个转义级别,你可能需要重复| escape部分(在你提供的一些但不是全部的例子中都是如此)。

答案 1 :(得分:2)

这是Django的django.utils.html.escape函数:

def escape(html):
    """Returns the given HTML with ampersands, quotes and carets encoded."""
    return mark_safe(force_unicode(html).replace('&', '&amp;').replace('<', '&l
t;').replace('>', '&gt;').replace('"', '&quot;').replace("'", '&#39;'))

另请参阅here