如何在Genshi模板中定义变量以供重用?
假设我有两个嵌套的for循环:
<div py:for="i in xrange(5)>
<div py:for=j in xrange(10)>
<!-- do something with "i * j" -->
<!-- do something else with "i * j" -->
<!-- do yet another thing with "i * j" -->
</div>
</div>
如评论所示,我想用两个循环变量做一个简单的计算,然后用reslt做一些事情(例如将其插入模板中)。
如果可能的话,我想重复使用计算结果而不是多次计算(因为计算可能比示例中的更难一点,而且我也不想复制计算代码如果我可以使用变量。)
我知道不应该在模板中做太多的计算,但这只是一个例子。我的目标是重用东西。另外我知道有def
标签用于定义宏,但我认为这些只是创建文本而不是变量,所以我不能在if
标签中使用它来进行条件检查。
有没有办法在Genshi模板中使用Python标签只是为了简单的Python表达式而不必输出什么东西?
答案 0 :(得分:1)
从结尾开始: 有没有办法在Genshi模板中使用Python标记只是为了简单的Python表达式而不必输出什么东西?
是的,您可以使用以下标记:
<?python ... ?>
例如:
<?python
if 'condition':
var = 'controls'
else:
var = 'controls row-fluid'
?>
然后:
<-- now class='controls' if 'condition' is true else class='controls row-fluid' -->
<div class="$var">
<-- put something inside -->
</div>
我希望它有所帮助,如果某些事情不清楚或“奇怪”的话。请评论。