$ {'foo%(a)s bar%(b)s'%{'a':'1','b':'2'}}语法在Mako模板中不起作用

时间:2010-02-08 13:42:47

标签: python templates mako

Mako模板中,我需要执行以下操作:

${'foo %(a)s bar %(b)s' % {'a': '1', 'b': '2'}}

当A这样做时,我收到此错误:

  

语法异常:(语法错误)解析时出现意外的EOF   (,第1行)(“foo%(a)s bar%(b)s'%{'a':'1','b':'2'”)在文件中......

如何解决此问题?

我需要在翻译文本中使用此语法:

$(_(u'foo bar %(a)s ... %(b)s) % { ... })

2 个答案:

答案 0 :(得分:0)

解决方法是以不同的方式传递dict对象。例如:

from mako.template import Template

print Template("${'foo %(a)s bar %(b)s' % data}").render(data=dict(a='Alpha',b='Beta'))

答案 1 :(得分:-1)

解决方案:

${'foo %(a)s bar %(b)s' % dict((('a', '1'), ('b', '2'),))}