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

Ant*_*air 1 php python pylons mako conditional-operator

在PHP中,我经常使用条件运算符将属性添加到html元素(如果它适用于相关元素).例如:

<select name="blah">
    <option value="1"<?= $blah == 1 ? ' selected="selected"' : '' ?>>
        One
    </option>
    <option value="2"<?= $blah == 2 ? ' selected="selected"' : '' ?>>
        Two
    </option>
</select>
Run Code Online (Sandbox Code Playgroud)

我正在用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>
Run Code Online (Sandbox Code Playgroud)

解决方案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>
Run Code Online (Sandbox Code Playgroud)

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

我正在寻找一种使用Mako实现这一目标的简洁方法.

ken*_*ytm 5

如果它正在运行Python,那么"三元运算符"就是

# condition ? trueValue : falseValue
trueValue if condition else falseValue
Run Code Online (Sandbox Code Playgroud)