Psycopg2 – PostgreSQL-Treiber für Python

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Psycopg2: Vollständiger Leitfaden für PostgreSQL in Python

Einleitung

PostgreSQL ist ein leistungsstarkes, quelloffenes relationales Datenbanksystem, das für seine Zuverlässigkeit, Skalierbarkeit und Unterstützung komplexer Datentypen bekannt ist. Für die Arbeit mit PostgreSQL in Python ist Psycopg2 das beliebteste und zuverlässigste Werkzeug – der offizielle synchrone Treiber, der eine stabile und leistungsstarke Lösung für Datenbankverbindungen, SQL-Abfragen, Transaktionsverwaltung und die Integration mit Web-Frameworks bietet.

Psycopg2 gilt aufgrund seiner Reife, seines vollständigen Funktionsumfangs und der aktiven Community-Unterstützung als De-facto-Standard für die Arbeit mit PostgreSQL in Python-Projekten.

Was ist Psycopg2?

Psycopg2 ist ein Python-Adapter für PostgreSQL, der in C unter Verwendung von libpq (der offiziellen Client-Bibliothek von PostgreSQL) geschrieben wurde. Die Bibliothek erfüllt die DB-API 2.0-Spezifikation vollständig und bietet zahlreiche zusätzliche, PostgreSQL-spezifische Funktionen.

Hauptmerkmale von Psycopg2:

  • Hohe Leistung: Dank C-Implementierung und optimierter Interaktion mit libpq
  • Sicherheit: Integrierter Schutz vor SQL-Injection durch parametrisierte Abfragen
  • Transaktionsunterstützung: Volle Kontrolle über Transaktionen mit automatischer Verwaltung
  • Datentyp-Kompatibilität: Automatische Konvertierung zwischen PostgreSQL- und Python-Datentypen
  • Erweiterungsunterstützung: Arbeit mit JSON, UUID, Arrays, hstore und anderen PostgreSQL-Datentypen
  • Thread-Sicherheit: Einsatz in Multithread-Anwendungen möglich

Installation und Einrichtung

Bibliothek installieren

pip install psycopg2-binary

Für Produktionsumgebungen wird die vollständige Version empfohlen:

pip install psycopg2

Systemvoraussetzungen

Stellen Sie vor der Installation sicher, dass die erforderlichen Abhängigkeiten installiert sind:

Ubuntu/Debian:

sudo apt-get install libpq-dev python3-dev

CentOS/RHEL:

sudo yum install postgresql-devel python3-devel

macOS:

brew install postgresql

Verbindung zur Datenbank herstellen

Einfache Verbindung

import psycopg2

# Verbindung zu PostgreSQL herstellen
conn = psycopg2.connect(
    dbname="mydb",
    user="postgres",
    password="password",
    host="localhost",
    port="5432"
)

# Cursor erstellen
cur = conn.cursor()

Verbindung über Verbindungs-String

conn = psycopg2.connect("postgresql://user:password@localhost:5432/dbname")

Verbindung mit zusätzlichen Parametern

conn = psycopg2.connect(
    dbname="mydb",
    user="postgres",
    password="password",
    host="localhost",
    port="5432",
    sslmode="require",
    connect_timeout=10,
    application_name="my_app"
)

Verwendung von Kontext-Managern

import psycopg2
from contextlib import contextmanager

@contextmanager
def get_db_connection():
    conn = psycopg2.connect(
        dbname="mydb",
        user="postgres",
        password="password",
        host="localhost"
    )
    try:
        yield conn
    finally:
        conn.close()

# Verwendung
with get_db_connection() as conn:
    with conn.cursor() as cur:
        cur.execute("SELECT * FROM users")
        results = cur.fetchal                    

Empfehlungen