在Pylons中使用Mako的条件运算符

1 投票
1 回答
1957 浏览
提问于 2025-04-15 23:00

在PHP中,我经常使用条件运算符来给HTML元素添加属性,前提是这个属性适用于该元素。比如:

<select name="blah">
    <option value="1"<?= $blah == 1 ? ' selected="selected"' : '' ?>>
        One
    </option>
    <option value="2"<?= $blah == 2 ? ' selected="selected"' : '' ?>>
        Two
    </option>
</select>

我正在用Pylons开始一个项目,并使用Mako来处理模板。我想知道怎么能做到类似的事情?现在,我看到两种可能的解决方案,但都不是很理想。

解决方案1:

<select name="blah">
    % if blah == 1:
    <option value="1" selected="selected">One</option>
    % else:
    <option value="1">One</option>
    % endif
    % if blah == 2:
    <option value="2" selected="selected">Two</option>
    % else:
    <option value="2">Two</option>
    % endif
</select>

解决方案2:

<select name="blah">
    <option value="1"
    % if blah == 1:
        selected="selected"
    % endif
    >One</option>
    <option value="2"
    % if blah == 2:
        selected="selected"
    % endif
    >Two</option>
</select>

在这个特定的情况下,值等于被测试的变量(value="1" => blah == 1),但我在其他情况下也使用相同的模式,比如 <?= isset($variable) ? ' value="$variable" : '' ?>

我希望能找到一种干净的方式来使用Mako实现这个功能。

1 个回答

5

如果你在使用Python编程,那么“三元运算符”就是

# condition ? trueValue : falseValue
trueValue if condition else falseValue

撰写回答