如何在Mako模板中编写单行条件语句
Mako实现单行条件语句的两种方法
你可以通过以下两种方式实现Mako模板的单行条件逻辑,替代多行的% if结构:
方法1:内联控制结构
Mako允许将%开头的控制指令与内容放在同一行,不需要换行或反斜杠,直接按顺序拼接即可:
from mako.template import Template tmpl = """Hello % if name: ${name} % else: world % endif""" t = Template(tmpl) print(t.render(name="Me")) # 输出:Hello Me print(t.render(name=None)) # 输出:Hello world
方法2:三元表达式(推荐)
更简洁的方式是使用Mako的表达式语法,直接嵌入Python风格的三元运算,完全不需要控制指令:
from mako.template import Template tmpl = """Hello ${name if name else 'world'}""" t = Template(tmpl) print(t.render(name="Me")) # 输出:Hello Me print(t.render(name=None)) # 输出:Hello world
这种写法和你想要的Jinja风格一样简洁,而且更符合Mako的表达式优先设计思路。
内容的提问来源于stack exchange,提问作者somenxavier
相关产品推荐
相关产品推荐

