Python/Bottle 生成模板时的奇怪行为 html table

Python/Bottle template weird behavior when generating html table

我已经学习了一些教程(也是第一篇教程),但我的代码没有按预期工作。基本上我想以这种方式生成 html table:

模板以这种方式提供:

return template('template', data=result)

我的模板中的代码片段:

%for item in data.data:
  %if ("X" in c_label and "Y" not in p_label and "Z" not in p_label):
  <tr>
    <td>{{child}}</td>
    <td>{{parent}}</td>
  </tr>
  %elif ("X" in c_label and "Y" in p_label):
  <tr>
    <td>{{child}}</td>
    <td>{{parent}}</td>
  </tr>
  %elif ("X" in c_label and "Z" in p_label):
  <tr>
    <td>{{child}}</td>
    <td>{{parent}}</td>
  </tr>
  %elif "W" in c_label:
  <tr>
    <td>{{child}}</td>
    <td>{{parent}}</td>
  </tr>
  %elif "U" in c_label:
  <tr>
    <td>{{child}}</td>
    <td>{{parent}}</td>
  </tr>
  %elif "Z" in c_label:
  <tr>
    <td>{{child}}</td>
    <td>{{parent}}</td>
  </tr>
%end
</table>

问题是 python 即使在 %end 之后仍保持 运行 for 循环。我在生成的页面中看到了它:

<table>
  <tr>
    <td>U</td>
    <td>I</td>
  </tr>
</table>
  <tr>
    <td>X</td>
    <td>U</td>
  </tr>
</table>
  <tr>
    <td>U</td>
    <td>I</td>
  </tr>
</table>

所以出于某种原因,它每次迭代都会不断修改 </table>,这完全搞砸了最后一页 :)。

提前致谢!

彼得

感谢 kwinkunks,我已将其识别为 SimpleTemplate 引擎。

答案在这里: http://bottlepy.org/docs/0.11/stpl.html

例如:

<div>\
 %if True:
<span>content</span>\
 %end
</div>

因此,正如 kwinkunks 所建议的,if 也必须以 end 结尾。