6

我正在学习金字塔,似乎他们正试图让人们使用变色龙而不是 mako,所以我想我会给变色龙一个机会。到目前为止我喜欢它,我可以在模板中做一些基本的事情,比如 if 和 for 循环,但我不确定如何让消息闪烁出现。

在金字塔教程中,他们在待办事项列表中执行此操作,但在wiki示例中,他们没有。根据有关会话的说明并以 todolist 教程为例,我已经能够让我的应用程序创建消息,但我无法在我的模板中接收它们。简而言之,我想知道变色龙是否有相当于这个 mako 代码:

  % if request.session.peek_flash():
  <div id="flash">
    <% flash = request.session.pop_flash() %>
    % for message in flash:
    ${message}<br>
    % endfor
  </div>
  % endif
4

1 回答 1

10

变色龙中的(未经测试的)等价物是:

<div id="flash" tal:condition="request.session.peek_flash()">
  <span tal:omit-tag="" 
        tal:repeat="message request.session.pop_flash()">
      ${message}<br>
  </span>
</div>

tal:omit-tag属性是可选的;它从输出中删除<span>标签,因为它仅用作附加重复的虚拟标签。通过删除它,Chameleon 模板的输出将匹配 Mako 示例。

有关模板语言如何工作的介绍和完整规范,请参阅Chameleon 文档。

于 2012-06-26T12:30:44.743 回答