Ich habe ein Projekt und ich habe meine db.py Modul definiert als:Python SQLAlchemy Kolben Muster
app = get_global_flask_app()
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://foo:[email protected]:5432/test"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
db.create_all()
Dann importiere ich db.db in Module, die zum Abfragen der Datenbank benötigen und Daten (db einfügen. session.query()).
Dies bedeutet jedoch, dass wenn ich Testcode (Pytest) schreibe, um jedes Modul zu testen, das db.py importiert, muss ich "SQLALCHEMY_DATABASE_URI" definieren. Eine Lösung besteht darin, dass db ein träge Attribut ist, so dass der obige Code nur dann in Tests ausgeführt wird, wenn die Datenbank verwendet/getestet wird. Gibt es ein gemeinsames Entwurfsmuster für Flask() + SQLA + SQLALCHEMY_DATABASE_URI da draußen, das ich vermisse? Wie würdest du dieses Problem lösen? Flask-Konfig?