Salut,
j'ai un problème d'organisation de mon code et d'accès à certaines de mes données. Mon projet est un truc web qui manipule une base de données. Pour l'instant, c'est organisé comme ça (c'est sujet à modifications d'ailleurs, chuis pas fixé la dessus) :
bli/
__init__.py
Base.py
blu.py
blo.py
etc.py
config.py
tests.py
|
Le contenu du répertoire /bli/ contient des classes qui vont interagir avec la base de données (en gros, un truc du genre Active Record). Base est la super-classe à partir de laquelle dérive toutes les autres.
J'ai commencé à écrire mes tests unitaires (dans /tests.py) pour tester mon truc et config.py contient mes options de configuration (paramètre de connection à la BD, etc.) Ca ressemble à ça :
def testBluLoad (self):
"""Test le chargement d'une carte déjà existante."""
b1 = bli.blu()
b1.name = "Home One"
b1.id_truc = 1
b1.machin = 1
b1.save()
b2 = bli.blu(b1.id)
self.assertEqual(b1.id, b2.id)
self.assertEqual(b1.name, b2.name)
self.assertEqual(b1.id_truc, b2.id_truc)
self.assertEqual(b1.machin, b2.machin)
|
Le problème, c'est la connection SQL. J'en ai forcément besoin dans mes classes de /bli/ . Actuellement, elle est ouverte dans tests.py, et à part la passer en paramètre à dans chaque constructeur de chaque classe ( ), j'vois pas trop
Je me sers de pyscopg (interface pour PostgreSQL), je l'ai pas wrappé du tout.
Ce que j'aimerais, c'est ouvrir une connection globale à la BD quelque part (à définir ), et pouvoir la récupérer automatiquement dans le constructeur de Base par ex., sans que j'ai à la passer de partout (éventuellement, y'aura d'autres trucs qui fonctionneront de la même manière).
Voilà, donc c'est plus un problème d'organisation que j'ai
Tout aides & conseils sont les bienvenues