PostgreSQL mit SQLAlchemy in Python verbinden
Python bietet eine Vielzahl von Bibliotheken, eine davon ist SQLAlchemy. Es bietet ein Object Relational Mapping (ORM)-System für die Arbeit mit Datenbanken, einschließlich PostgreSQL. Es wird von den Entwicklern zum Speichern und Verwalten großer Mengen strukturierter Daten verwendet. Durch die Verbindung beider können wir eine produktivere und effizientere Datenbank erstellen. In diesem Artikel erfahren Sie, wie Sie PostgreSQL mit SQLAlchemy in Python verbinden.
Was ist SQLAlchemy?
Es handelt sich um eine leistungsstarke Bibliothek, die die Arbeit mit Datenbanken vereinfacht und häufig in der Webentwicklung und Datenanalyse eingesetzt wird. Es bietet erweiterte Funktionen wie Verbindungspooling, Anweisungs-Caching und Lastausgleich. Diese erweiterten Funktionen tragen dazu bei, die Leistung der Datenbankanwendungen zu verbessern.
Was ist PostgreSQL?
Es handelt sich um ein fortschrittliches relationales Open-Source-Datenbankverwaltungssystem, das für seine Leistung, Skalierbarkeit und Robustheit bekannt ist. Es wird als Backend-Datenbank für Webanwendungen verwendet und unterstützt eine Vielzahl von Programmiersprachen.
Vorteile der Verbindung von PostgreSQL mit SQLAlchemy
Im Folgenden sind die Vorteile der Verbindung von PostgreSQL mit SQLAlchemy aufgeführt:
Die Vielseitigkeit und Flexibilität der SQLAlchemy-Bibliothek bietet den Entwicklern einen Vorteil bei der Arbeit mit verschiedenen Datenbankverwaltungssystemen.
Daher können die Entwickler dieselbe Schnittstelle und Codestruktur verwenden, während sie mit verschiedenen Datenbanken arbeiten. Dies hilft, Zeit und Mühe zu sparen.
SQLAlchemy bietet ein Object-Relational Mapping (ORM)-Framework, das es Entwicklern ermöglicht, mit PostgreSQL mithilfe von Python-Klassen und -Objekten zu arbeiten.
Diese gebildete Schicht vereinfacht den Prozess der Interaktion mit der Datenbank und hilft, sich auf die Anwendungslogik statt auf Datenbankdetails zu konzentrieren.
Psycopg2 ist eine Python-Bibliothek, die eine Reihe von Tools bietet, die für die Arbeit mit den PostgreSQL-Datenbanken mithilfe von Python verwendet werden können. Es bietet Unterstützung für erweiterte PostgreSQL-Funktionen wie serverseitige Cursor, Transaktionsverwaltung und asynchrone Verbindungen. Es wird häufig in der Webentwicklung und Datenanalyse eingesetzt, also in den Bereichen, in denen Datenpersistenz erforderlich ist.
Voraussetzungen
Bevor Sie fortfahren, stellen Sie sicher, dass Folgendes auf Ihrem System installiert ist und ausgeführt wird.
Python 3
PostgreSQL-Datenbank
Psycopg2- und SQLAlchemy-Pakete
Wie installiere ich das erforderliche Python-Paket?
Mithilfe von pip, einem Paketinstallationsprogramm für Python, können psycopg2 und SQLAlchemy installiert werden. Öffnen Sie die Eingabeaufforderung in Ihrem System und führen Sie den folgenden Befehl aus.
pip install psycopg2
pip install sqlalchemy
Die Installation der erforderlichen Pakete ist der erste Schritt. Der nächste Schritt besteht darin, PostgreSQL mit SQLAlchemy zu verbinden. Sie können die Funktion create_engine() von SQLAlchemy verwenden, um eine Verbindung zu unserer PostgreSQL-Datenbank herzustellen.
-
Übergeben Sie die Datenbank-URL an diese Funktion. Es sollte den Datenbanknamen, den Benutzernamen, das Passwort, den Host und die Portnummer enthalten.
Beispiel
Bereiten wir einen Code vor, der die Verwendung von create_engine() zum Herstellen einer Verbindung zur PostgreSQL-Datenbank erläutert.
from sqlalchemy import create_engine
# for postgreSQL database credentials can be written as
user = 'username'
password = 'your_password'
host = 'localhost'
port = '5432'
database = 'mydb'
# for creating connection string
connection_str = f’postgresql:// {user}:{password}@{host}:{port}/{database}’
# SQLAlchemy engine
engine = create_engine(connection_str)
# you can test if the connection is made or not
try:
with engine.connect() as connection_str:
print('Successfully connected to the PostgreSQL database')
except Exception as ex:
print(f'Sorry failed to connect: {ex}')
Wir haben mit dem Code begonnen, indem wir die Funktionen aus der SQLAlchemy-Bibliothek importiert haben. Anschließend haben wir die Anmeldeinformationen für die PostgreSQL-Datenbank definiert. Der nächste Schritt bestand darin, die Verbindungszeichenfolge mit diesen Anmeldeinformationen zu erstellen. Sie können die Anmeldeinformationen mit denen ändern, die Sie in Ihrer Datenbank angegeben haben.
In Zukunft haben wir die Funktion create_engine() verwendet, um ein SQLAlchemy-Engine-Objekt zu erstellen. Somit stellt dieses Objekt die Datenbankverbindung dar und kann auch zum Ausführen von SQL-Befehlen auf der Datenbank verwendet werden.
Nachdem Sie mithilfe von SQLAlchemy eine Verbindung zu PostgreSQL hergestellt haben, können Sie mithilfe der Methode „execute()“ des Engine-Objekts SQL-Befehle in der Datenbank ausführen.
Fehler
Es besteht die Möglichkeit, dass Sie die Fehler sehen, nachdem Sie den Code zum Zeitpunkt der Ausführung geschrieben haben. Lassen Sie uns einige der häufigsten Fehler und Lösungen dafür durchgehen.
Einer der grundlegenden Fehler, der auftreten kann, ist der Importfehler. Sie können diesen Fehler einfach beheben, indem Sie das Modul installieren, indem Sie pip in der Eingabeaufforderung verwenden.
Beim Ausführen der SQL-Befehle wird möglicherweise die Fehlermeldung „sqlalchemy.exc.OperationalError: (psycopg2.OperationalError)FATAL:role „username“ existiert nicht“ angezeigt. Dieser Fehler kann auftreten, wenn der Benutzername in der Verbindungszeichenfolge in PostgreSQL nicht vorhanden ist.
Möglicherweise tritt ein Betriebsfehler auf, bei dem das Modul keine Verbindung zum Server herstellen konnte. Sie können diesen Fehler beheben, indem Sie die Netzwerkkonfiguration überprüfen oder den PostgreSQL-Server starten.
Abschluss
Aus dem Artikel können wir schließen, dass SQLAlchemy eine leistungsstarke Python-Bibliothek für die Arbeit mit Datenbanken ist, da sie Flexibilität basierend auf Datenmanipulation und Datenkonnektivität bietet. Mithilfe der ORM-Funktionen von SQL kann man Code in Python schreiben, der auf ausdrucksstärkere Weise mit der PostgreSQL-Datenbank interagiert. Wenn Sie also ein Python-Entwickler sind und Arbeit mit den Datenbanken in ihrer Anwendung suchen, kann SQLAlchemy eine gute Wahl sein.