根史:复杂表达式内的花括号导致ParseError

时间:2018-11-05 23:12:04

标签: python genshi

我有以下用于生成HTML的Genshi HTML模板代码段。

<div>
    ${'Hello {name}'.format(name='foo')}
</div>

由于字符串中的花括号,Genshi对此进行了拟合。

Traceback (most recent call last):
  File "C:\Python36\lib\site-packages\genshi\input.py", line 161, in _generate
    self.expat.Parse(data, False)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 137, column 34

是否有一种方法可以摆脱花括号?我应该使用比${...code...}语法更好的东西吗?

1 个答案:

答案 0 :(得分:1)

除非您要执行更复杂的操作(代码/功能),否则可以执行以下操作:

<div>
    Hello ${name}  // or just Hello $name
</div>

对于复杂的事物,请使用code block syntax

<div>
  <?python
      def greeting(name):
          return 'Hello {name}'.format(name=name) ?>
  ${greeting('foo')}
</div>