在Genshi模板中定义变量

时间:2015-12-04 12:10:50

标签: python templates python-2.x genshi

如何在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表达式而不必输出什么东西?

1 个答案:

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

我希望它有所帮助,如果某些事情不清楚或“奇怪”的话。请评论。