在文档中,我们发现:
${...} operator
${...} 符号是文本插入的简写。对大括号内的 Python 表达式求值并将结果包含在输出中(默认情况下,所有插入的文本都被转义):
<div id="section-${index + 1}"> ${content} </div>
要避免这种行为,请在符号前加上反斜杠字符:
\${...}
。
如何将content
值呈现为 HTML 而不是文本?
在文档中,我们发现:
${...} operator
${...} 符号是文本插入的简写。对大括号内的 Python 表达式求值并将结果包含在输出中(默认情况下,所有插入的文本都被转义):
<div id="section-${index + 1}"> ${content} </div>
要避免这种行为,请在符号前加上反斜杠字符:
\${...}
。
如何将content
值呈现为 HTML 而不是文本?
为避免转义,请使用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>