在文档中我们发现了这个:
${...} operator
$ {...}表示法是文字插入的简写。将对大括号内的Python表达式进行求值,并将结果包含在输出中(默认情况下,所有插入的文本都将被转义):
<div id="section-${index + 1}"> ${content} </div>
要转义此行为,请在表示法前加上反斜杠字符:
\${...}
。
如何将content
值呈现为HTML而不是文本?
答案 0 :(得分:2)
为避免转义,请使用structure:
前缀:
<div>${structure: content}</div>
您还可以使用__html__
方法传递对象:
请注意,如果对象实现了
__html__
方法,则结果为。{ 这个方法将按原样插入(没有XML转义)。
<强>更新强>
根据要求,以下是我认为__html__
方法应该如何工作的示例。请注意,我不是变色龙用户,并且此代码未经测试:)
class Unescaped(object):
def __init__(self, value):
self.value = value
def __html__(self):
return self.value
在你的模板中:
<div>${ Unescaped(content) }</div>