Python Bottle 模板引擎不允许句点

Python Bottle template engine does not allow period

看起来 Bottle 模板引擎在它的模板变量中没有句号。以下代码:

from bottle import template
x = 'blah {{blah.blah}} blah'
d = {'blah.blah': 'doodah'}
template(x, **d)

给我这个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\WPy-3662\python-3.6.6.amd64\lib\site-packages\bottle.py", line 3622, in template
    return TEMPLATES[tplid].render(kwargs)
  File "E:\WPy-3662\python-3.6.6.amd64\lib\site-packages\bottle.py", line 3411, in render
    self.execute(stdout, env)
  File "E:\WPy-3662\python-3.6.6.amd64\lib\site-packages\bottle.py", line 3398, in execute
    eval(self.co, env)
  File "<string>", line 1, in <module>
NameError: name 'blah' is not defined

我需要月经。我将模板保存在多行字符串数组中,然后将字典数组传递给 Bottle 模板引擎。

我该如何解决这个问题?

所以问题不在于 Bottle,而在于 python 在 eval 期间如何解析变量。

模板字符串blah.blah当运行通过eval创建一个变量名blah.blah时,它变成了两部分符号。

blah.blah = 'doodah'

无法工作。尽管它确实在字典中起作用,因为它是一个字符串名称。如果用下划线替换点,它将起作用,因为下划线是有效的变量名。