用于HTML插入的Python简写

时间:2014-03-28 13:42:51

标签: python chameleon

在文档中我们发现了这个:

  

${...} operator

     

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

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

要转义此行为,请在表示法前加上反斜杠字符:\${...}

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

1 个答案:

答案 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>