Dies ist eine Methode zum Erstellen eines Cursur-Objekts, das mithilfe der with-Syntax in sqlite3 der Python-Standardbibliothek automatisch geschlossen wird.
Wenn Sie es normal verwenden, müssen Sie cur.close () schreiben, während Sie jedes Mal Ausnahmen behandeln, was sehr problematisch ist.
Sie können dies auch verwenden, um Code mit "psycopg2" zu teilen, das ein ähnliches API-Format hat.
import sqlite3
class AutoCloseCursur(sqlite3.Cursor):
def __init__(self, connection):
super().__init__(connection)
def __enter__(self):
return self
def __exit__(self, *args):
self.close()
Wenn Sie es ohne eine solche Implementierung schreiben, sieht der Code folgendermaßen aus:
with sqlite3.connect(DATABASE) as conn:
cur = conn.cursur()
cur.execute(SQL_QUERY)
cur.close()
conn.commit()
Dies hat die folgenden Probleme
Sie können alle drei lösen, indem Sie Ihre eigene Klasse wie oben gezeigt verwenden.
with sqlite3.connect(DATABASE) as conn:
with AutoCloseCursur(conn)
cur.execute(SQL_QUERY)
conn.commit()
Wenn Sie es gut kombinieren, können Sie PostgreSQL und SQLite DB mit demselben Code verarbeiten.
Recommended Posts