Context manager para MySQLdb @ de Pyth
Estoy acostumbrado (¿mimado por?) @ De Pyth SQLite interfaz para tratar con bases de datos SQL. Una buena característica en la API de SQLite de Python es el "administrador de contexto", es decir, el @ de Pythwith
declaración. Normalmente ejecuto consultas de la siguiente manera:
import as sqlite
with sqlite.connect(db_filename) as conn:
query = "INSERT OR IGNORE INTO shapes VALUES (?,?);"
results = conn.execute(query, ("ID1","triangle"))
Con el código anterior, si mi consulta modifica la base de datos y me olvido de ejecutarconn.commit()
, el administrador de contexto lo ejecuta automáticamente al salir dewith
declaración. También maneja las excepciones muy bien: si se produce una excepción antes de confirmar algo, la base de datos se revierte.
Ahora estoy usando elMySQLdb
interface, que no parece admitir un administrador de contexto similar listo para usar. ¿Cómo creo el mío? Hay una pregunta relacionadaaqu, pero no ofrece una solución completa.