Python Bottle - 模板中的内联IF语句
Make = <SELECT name="where_make">
% for make in makes:
<OPTION value="{{make}}"
% if make == defaults['make']:
selected="selected"
% end
>{{make}}</option>
%end
我该如何把这个if语句写成一行呢?
1 个回答
7
Bottle自带的模板引擎支持内联if语句:
<option value="{{make}}" {{!'selected="selected"' if make == defaults['make'] else ""}}>{{make}}</option>
注意在selected="selected"
前面的感叹号,它是告诉模板引擎不要对引号进行转义。
演示:
from bottle import SimpleTemplate
tpl = SimpleTemplate("""Make = <SELECT name="where_make">
% for make in makes:
<option value="{{make}}" {{!'selected="selected"' if make == defaults['make'] else ""}}>{{make}}</option>
%end""")
print tpl.render(make='test', defaults={'make': 'test'}, makes=['test'])
输出结果是:
Make = <SELECT name="where_make">
<option value="test" selected="selected">test</option>
希望这对你有帮助。