【问题标题】:Python Bottle - Inline IF statements in TemplatePython Bottle - 模板中的内联 IF 语句
【发布时间】:2014-03-14 04:59:20
【问题描述】:
Make = <SELECT name="where_make">
% for make in makes:
<OPTION value="{{make}}"
% if make == defaults['make']:
selected="selected"
% end
>{{make}}</option>
%end
如何在一行中执行此 if 语句?
【问题讨论】:
标签:
python
templates
bottle
【解决方案1】:
Bottle 内置模板引擎支持inline if statements:
<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>
希望对您有所帮助。