webpy在for循环中不识别python的第二行

webpy在for循环中不识别python的第二行,python,Python,当我使用webpy运行下面的代码时,我得到“NameError:未定义全局名称'test'” 当我在python中运行代码时,它就像预期的那样工作。就好像WebPy不把[$test =每一行]看作for循环的一部分而引起错误一样。如何让webpy读取第二行作为for循环的一部分 $def with (orders) <h1>OUTscreen</h1> <table border="1"> <tr> <th>Has Waited<

当我使用webpy运行下面的代码时,我得到“NameError:未定义全局名称'test'” 当我在python中运行代码时,它就像预期的那样工作。就好像WebPy不把[$test =每一行]看作for循环的一部分而引起错误一样。如何让webpy读取第二行作为for循环的一部分

$def with (orders)

<h1>OUTscreen</h1>
<table border="1">
<tr>
<th>Has Waited</th>
<th>Size</th>
<th>Type</th>
<th>Customer</th>
</tr>

$for each in orders:
    $test = each
<tr>
<td>$test.minsInYard min</td>
<td>$test.size</td>
<td>$test.eqType</td>
<td>$test.cust</td>
<td>$test.trucker</td>
    </tr>

</table>
$def与(订单)
银幕外
等待
大小
类型
顾客
订单中每个$
$test=每个
$test.minsInYard最小值
$test.size
$test.eqType
$test.cust
$test.trucker
感谢您的帮助

本手册中没有直接提到变量赋值

但是,根据现有文档,您可能需要将表达式用大括号括起来,如下所示:

$for each in orders:
    ${test = each}

如果那不起作用,我建议这可能是不可能的。然而,考虑到这是一个模板,任何逻辑都应该在模板本身的外部完成,这意味着赋值,并且应该需要除非平凡表达式以外的任何内容。

在您发布的示例中,没有理由不能:

$for test in orders:
<tr>
<td>$test.minsInYard min</td>
...

仅仅在变量名前加一个“$”是不够的。

我不知道为什么会这样做,但在第二个$后加4个空格就行了。谢谢你的帮助

$for test in orders:
    $    test = each
<tr>
<td>$test.minsInYard min</td>
<td>$test.size</td>
<td>$test.eqType</td>
<td>$test.cust</td>
<td>$test.trucker</td>
</tr>

</table>
$用于订单测试:
$test=每个
$test.minsInYard最小值
$test.size
$test.eqType
$test.cust
$test.trucker

for循环中使用
each.XXX
而不是
test.XXX
时会发生什么?
$for test in orders:
    $    test = each
<tr>
<td>$test.minsInYard min</td>
<td>$test.size</td>
<td>$test.eqType</td>
<td>$test.cust</td>
<td>$test.trucker</td>
</tr>

</table>