Je suis en train de faire quelque chose comme ça...
conn = sqlite3.connect(db_filename)
with conn:
cur = conn.cursor()
cur.execute( ... )
with
valide automatiquement les modifications. Mais la documentation ne dit rien sur la fermeture de la connexion.
En fait, je peux utiliser conn
dans les déclarations ultérieures (que j'ai testées). Il semble donc que le gestionnaire de contexte ne ferme pas la connexion.
Dois-je fermer manuellement la connexion ? Que se passe-t-il si je la laisse ouverte ?
EDIT
Mes conclusions :
- En la connexion n'est pas fermée dans le gestionnaire de contexte, je l'ai testé et confirmé. Lors de
__exit__
le gestionnaire de contexte ne valide les modifications qu'en faisantconn.commit()
with conn
ywith sqlite3.connect(db_filename) as conn
sont les mêmes, de sorte que l'utilisation de l'un ou l'autre maintiendra la connexion en viewith
ne crée pas de nouvelle portée, donc toutes les variables créées à l'intérieur de la suite de with seront accessibles à l'extérieur de celle-ci- Enfin, vous devez fermer la connexion manuellement