テンプレートから呼び出すことができるグローバル変数が必要です。
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}" />
画像パスはアプリのデータベースの設定テーブル内に保存されていますが、グローバル宣言から初期化できません。次のエラーが発生します。
sqlalchemy.exc.UnboundExecutionError:マッパーマッパー|設定|設定、SQL式、またはこのセッションで構成されたバインドが見つかりませんでした
私の推測では、データベースのバインドはグローバルが初期化された後に発生します。だから私の質問は、TurboGears 2でグローバル変数を初期化するのに最適な場所であり、そのためのベストプラクティスです。