PostgreSQL - Python-Schnittstelle: Ein Anfängerleitfaden
Hallo da draußen, zukünftige Datenbank-Zauberer! Ich freue mich sehr, Ihr Guide auf dieser aufregenden Reise in die Welt von PostgreSQL und Python zu sein. Als jemand, der seit Jahren Informatik unterrichtet, kann ich Ihnen sagen, dass diese Kombination wie Erdnussbutter und Marmelade ist – einfach köstlich! Also, rollen wir die Ärmel hoch und tauchen ein!
Installation
Bevor wir Zauber zaubern können, müssen wir unsere Werkzeuge einrichten. Denken Sie daran als Vorbereitung Ihrer Küche vor dem Kochen eines Gourmetmahls.
-
Stellen Sie sicher, dass PostgreSQL auf Ihrem Computer installiert ist. Sie können es von der offiziellen PostgreSQL-Website herunterladen.
-
Als nächstes müssen wir das Python-Modul installieren, das uns ermöglicht, mit PostgreSQL zu kommunizieren. Öffnen Sie Ihr Terminal oder Kommandozeilenfenster und tippen Sie:
pip install psycopg2
Dieser Befehl ist so, als бы Sie Ihren Computer bitten, ein neues Werkzeug zu seinem Werkzeugkasten hinzuzufügen. Wenn das erledigt ist, sind Sie bereit zu gehen!
Python psycopg2 Modul APIs
Nun, da wir unsere Werkzeuge haben, werfen wir einen kurzen Blick darauf, was sie können. Das psycopg2-Modul stellt uns eine Reihe von Funktionen zur Verfügung, um mit PostgreSQL zu interagieren. Hier ist eine Tabelle der häufigsten:
Funktion | Beschreibung |
---|---|
connect() | Stellt eine Verbindung zur Datenbank her |
cursor() | Erzeugt ein Cursor-Objekt zur Ausführung von SQL-Befehlen |
execute() | Führt eine Datenbankoperation (Abfrage oder Befehl) aus |
fetchone() | Holt die nächste Zeile eines Abfrageergebnis-Sets |
fetchall() | Holt alle (verbleibenden) Zeilen eines Abfrageergebnis-Sets |
commit() | Bestätigt die aktuelle Transaktion |
rollback() | Setzt zurück auf den Beginn jeder ausstehenden Transaktion |
close() | Schließt die Datenbankverbindung |
Machen Sie sich keine Sorgen, wenn das wie eine fremde Sprache aussieht. Wir werden jede davon im Detail erkunden, während wir voranschreiten!
Verbindung zur Datenbank herstellen
Lassen Sie uns mit der Herstellung einer Verbindung zu unserer Datenbank beginnen. Das ist so, als бы man an die Tür klopft und bittet, eintreten zu dürfen.
import psycopg2
try:
connection = psycopg2.connect(
database="mydb",
user="myuser",
password="mypassword",
host="localhost",
port="5432"
)
print("Verbindung erfolgreich!")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Verbinden mit PostgreSQL", error)
In diesem Code:
- Importieren wir das psycopg2-Modul
- Verwenden wir die
connect()
-Funktion, um eine Verbindung herzustellen - Geben wir die notwendigen Details wie Datenbankname, Benutzer, Passwort usw. an
- Verwenden wir einen try-except-Block, um mögliche Fehler zu behandeln
Wenn alles gut geht, sollten Sie "Verbindung erfolgreich!" sehen. Gratulation, Sie haben die Tür zu Ihrer Datenbank geöffnet!
Eine Tabelle erstellen
Nun, da wir drin sind, lassen Sie uns eine Tabelle erstellen, um Daten zu speichern. Stellen Sie sich vor, Sie richten ein Bücherregal ein, um Ihre Bücher zu organisieren.
try:
cursor = connection.cursor()
create_table_query = '''CREATE TABLE books
(ID INT PRIMARY KEY NOT NULL,
TITLE TEXT NOT NULL,
AUTHOR TEXT NOT NULL,
PUBLISHED_DATE DATE);'''
cursor.execute(create_table_query)
connection.commit()
print("Tabelle erfolgreich erstellt!")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Erstellen der Tabelle", error)
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL-Verbindung geschlossen")
Hier passiert Folgendes:
- Wir erstellen ein Cursor-Objekt, das wie unser Datenbank-Assistent ist
- Wir definieren unsere SQL-Abfrage, um eine Tabelle namens 'books' zu erstellen
- Wir verwenden
execute()
um die Abfrage auszuführen - Wir
commit()
unsere Änderungen, um sie dauerhaft zu speichern - Schließlich schließen wir unseren Cursor und unsere Verbindung, um gute Datenbankbürger zu sein
Einfügen (INSERT)-Operation
Es ist an der Zeit, einige Bücher auf unser Regal zu stellen! Lassen Sie uns einen Eintrag in unsere Tabelle einfügen.
try:
cursor = connection.cursor()
insert_query = """ INSERT INTO books (ID, TITLE, AUTHOR, PUBLISHED_DATE)
VALUES (%s, %s, %s, %s)"""
record_to_insert = (1, "To Kill a Mockingbird", "Harper Lee", "1960-07-11")
cursor.execute(insert_query, record_to_insert)
connection.commit()
print("Eintrag erfolgreich eingefügt")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Einfügen von Daten", error)
In diesem Code:
- Erstellen wir unsere Einfügebefehl mit Platzhaltern (%s) für unsere Werte
- Definieren wir eine Tupel mit den Werten, die wir einfügen möchten
- Führen wir die Abfrage aus, indem wir unsere Tupel der Werte übergeben
- Bestätigen wir die Änderungen
Abfrage (SELECT)-Operation
Nun, lassen Sie uns überprüfen, was wir auf unserem Regal haben!
try:
cursor = connection.cursor()
select_query = "SELECT * from books"
cursor.execute(select_query)
records = cursor.fetchall()
for row in records:
print("ID:", row[0])
print("TITEL:", row[1])
print("AUTOR:", row[2])
print("VERÖFFENTLICHT AM:", row[3], "\n")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Abrufen von Daten", error)
Hier passiert Folgendes:
- Wir erstellen eine Abfrage, um alle Einträge aus unserer 'books'-Tabelle abzurufen
- Wir führen die Abfrage aus
- Wir verwenden
fetchall()
um alle Ergebnisse zu erhalten - Wir durchlaufen die Ergebnisse und drucken die Details jedes Buches
Aktualisieren (UPDATE)-Operation
Uff! Wir haben einen Fehler gemacht. Lassen Sie uns einen Eintrag aktualisieren, um ihn zu korrigieren.
try:
cursor = connection.cursor()
update_query = """Update books set AUTHOR = %s where ID = %s"""
cursor.execute(update_query, ("Nelle Harper Lee", 1))
connection.commit()
print("Eintrag erfolgreich aktualisiert")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Aktualisieren von Daten", error)
In diesem Code:
- Erstellen wir eine Aktualisierungsabfrage mit Platzhaltern für den neuen Autornamen und die ID
- Führen wir die Abfrage mit den neuen Werten aus
- Bestätigen wir die Änderungen
Löschen (DELETE)-Operation
Schließlich lernen wir, wie man ein Buch von unserem Regal entfernt.
try:
cursor = connection.cursor()
delete_query = """Delete from books where ID = %s"""
cursor.execute(delete_query, (1,))
connection.commit()
print("Eintrag erfolgreich gelöscht")
except (Exception, psycopg2.Error) as error:
print("Fehler beim Löschen von Daten", error)
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL-Verbindung geschlossen")
Hier passiert Folgendes:
- Wir erstellen eine Löschabfrage mit einem Platzhalter für die ID
- Führen wir die Abfrage mit der ID des Eintrags aus, den wir löschen möchten
- Bestätigen wir die Änderungen
- Schließlich schließen wir unseren Cursor und unsere Verbindung
Und das war's! Sie haben gerade die Grundlagen des Umgangs mit PostgreSQL unter Python gelernt. Erinnern Sie sich daran, dass Übung den Meister macht, also fürchten Sie sich nicht, verschiedene Dinge auszuprobieren. Frohes Coden und möge Ihre Datenbanken immer in perfekter Ordnung sein!
Credits: Image by storyset