Genshi: фигурная скобка внутри сложного выражения вызывает ParseError

У меня есть следующий фрагмент HTML-шаблона Genshi, который используется для создания HTML.

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

Генши приходит в ярость из-за фигурных скобок в строке.

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...}?


person ErikusMaximus    schedule 05.11.2018    source источник


Ответы (1)


Если вы не делаете что-то более сложное (код/функция), вы можете сделать:

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

Для чего-то сложного используйте синтаксис блока кода:

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