J'ai un projet et j'ai défini mon module db.py comme:modèles de ballon Python sqlalchemy
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()
Puis-je importer db.db en modules qui ont besoin d'interroger la base de données et insérer des données (db. session.query()). Cependant, cela signifie que lorsque j'écris un code de test (pytest) pour tester un module qui importe db.py, je dois définir "SQLALCHEMY_DATABASE_URI". Une solution consiste à avoir un attribut paresseux pour que le code ci-dessus soit exécuté dans les tests uniquement si la base de données est utilisée/testée. Existe-t-il un modèle de conception courant pour Flask() + SQLA + SQLALCHEMY_DATABASE_URI là-bas que je manque? comment résoudrais-tu ce problème? Flask-config?