2

在文档中,我们发现:

${...} operator

${...} 符号是文本插入的简写。对大括号内的 Python 表达式求值并将结果包含在输出中(默认情况下,所有插入的文本都被转义):

 <div id="section-${index + 1}">
    ${content}
 </div>

要避免这种行为,请在符号前加上反斜杠字符:\${...}

如何将content值呈现为 HTML 而不是文本?

4

1 回答 1

2

为避免转义,请使用structure:前缀:

<div>${structure: content}</div>

您还可以使用__html__方法传递对象:

请注意,如果对象实现了该__html__方法,则该方法的结果将按原样插入(没有 XML 转义)。

更新:

__html__根据要求,这是我认为该方法应如何工作的示例。请注意,我不是 Chameleon 用户,并且此代码未经测试:)

class Unescaped(object):
    def __init__(self, value):
        self.value = value

    def __html__(self):
        return self.value

在您的模板中:

<div>${ Unescaped(content) }</div>
于 2014-03-28T14:01:54.537 回答