Gestionnaire de contexte pour Python MySQLdb

Je suis habitué (gâté par?) python SQLite interface pour gérer des bases de données SQL. Une fonctionnalité intéressante en python SQLite de l'API le "gestionnaire de contexte," c'est à dire, python with déclaration. J'ai l'habitude d'exécuter des requêtes de la manière suivante:

import as sqlite

with sqlite.connect(db_filename) as conn:
    query = "INSERT OR IGNORE INTO shapes VALUES (?,?);"
    results = conn.execute(query, ("ID1","triangle"))

Avec le code ci-dessus, si ma requête modifie la base de données et j'ai oublier d'exécuter conn.commit(),le gestionnaire de contexte qu'il exécute automatiquement pour moi à la sortie de l' with déclaration. Il gère aussi des exceptions bien: si une exception se produit avant que je m'engage à rien, puis la base de données est restaurée.

Je suis maintenant en utilisant la MySQLdb interface, ce qui ne semble pas soutenir un contexte similaire gestionnaire de la boîte. Comment puis-je créer mon propre? Il y a une question relative à la ici, mais il n'offre pas une solution complète.

InformationsquelleAutor conradlee | 2011-11-09