接続プールにsqlalchemyを使用していますが、エンジンオブジェクトを他のモジュールで使用できるようにしたいです。他のモジュールが必要とするユーティリティ用のモジュールを作成しました。次のようになります。
from sqlalchemy import [...]
_engine = create_engine(url)
_meta = MetaData()
_meta.bind = _engine
def get_meta():
return _meta
def get_engine():
return _engine
以前、先頭にアンダースコアを付けずにこれを実行しようとしましたが、機能しませんでした。先頭の下線はPythonのプライベート変数の従来のスタイルにすぎないという印象を受けましたが、コードの解釈方法に影響を与える可能性があるようです。とにかく、私は特定のライブエンジンオブジェクト(データベース接続プールへのアクセスを制御する)を他のモジュールで利用できるようにしようとしています。そのためのベストプラクティスを知りたいのですが、ありがとうございます。