-1

如何在 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 表达式,而无需输出一些东西?

4

1 回答 1

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>

我希望它有所帮助,如果有什么不清楚或“奇怪”,请发表评论。

于 2016-06-24T19:06:51.973 回答