我需要一个可以从模板中调用的全局变量。
我在 lib 目录中编辑了 app_globals.py 以像这样声明 PATH_TO_IMAGES
class Globals(object):
"""Container for objects available throughout the life of the application.
One instance of Globals is created during application initialization and
is available during requests via the 'app_globals' variable.
"""
PATH_TO_IMAGES = ""
def __init__(self):
"""Do nothing, by default."""
pass
现在我可以从任何模板调用像这样的图像路径
<img src="${g.PATH_TO_IMAGES}/${p.image}" />
图像路径存储在应用程序数据库的设置表中,但我无法从 Globals 声明中对其进行初始化,我收到此错误:
sqlalchemy.exc.UnboundExecutionError: 找不到映射器映射器|设置|设置、SQL 表达式或此会话上配置的绑定
我的猜测是数据库绑定发生在 Globals 初始化之后。所以我的问题是,这是在 TurboGears 2 中初始化全局变量的最佳位置,也是最佳实践。