PYTHON HILFE

psycopg2 (Wie es für Entwickler funktioniert)

Die psycopg2-Bibliothek ist ein beliebter PostgreSQL-Datenbankadapter für die Programmiersprache Python. Es ist bekannt für seine Effizienz, Thread-Sicherheit und die vollständige Implementierung der Python DB API 2.0-Spezifikation. Schauen wir uns die Funktionen an und sehen wir uns einige Codebeispiele an. Später in diesem Artikel werden wir über IronPDF lernen, eine PDF-Erzeugungsbibliothek von Iron Software.

Einführung

Psycopg2 ist dafür konzipiert, effizient und sicher zu sein, was es für stark mehrsträngige Anwendungen geeignet macht. Einige der wichtigsten Merkmale sind:

  • Threadsicherheit: Mehrere Threads können dieselbe Verbindung teilen—die Fähigkeit zur Handhabung mehrthreadiger Anwendungen, die viele Cursor erstellen und zerstören.
  • Clientseitige und serverseitige Cursor: Große Datensätze effizient verwalten.
  • Asynchrone Kommunikation und Benachrichtigungen: Unterstützung für asynchrone Operationen.
  • COPY-Unterstützung: Daten effizient in großen Mengen mit COPY TO und COPY FROM laden.
  • Anpassungssystem: Automatisches Anpassen von Python-Typen an PostgreSQL-Typen; das Paket transponiert automatisch zu den passenden PostgreSQL-Datentypen.
  • Unicode- und Python 3-freundlich: Volle Unterstützung für Unicode und Python 3.

Einrichtung

Sie können psycopg2 mit pip installieren:

pip install psycopg2
pip install psycopg2
SHELL

Alternativ können Sie setup.py aus dem Quellpaket lokal verwenden. Sie können das Quellpaket aus dem Quellcode-Repository hier beziehen:

python setup.py build
sudo python setup.py install
py
PYTHON

Für ein eigenständiges Paket, das weder einen Compiler noch externe Bibliotheken benötigt, können Sie das Paket psycopg2-binary verwenden:

pip install psycopg2-binary
pip install psycopg2-binary
SHELL

Grundlegende Verwendung

Hier ist ein einfaches Beispiel, um Ihnen den Einstieg in psycopg2 zu erleichtern.

Verbinden mit einer Datenbank

Zunächst müssen Sie eine Verbindung zu Ihrer PostgreSQL-Datenbank herstellen:

import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
    dbname="your_dbname",
    user="your_username",
    password="your_password",
    host="your_host",
    port="your_port"
)
# Create a cursor object
cur = conn.cursor()
py
PYTHON

Ausführen von Abfragen

Sie können SQL-Abfragen mit dem Cursor-Objekt ausführen:

# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
    print(row)
py
PYTHON

Einfügen von Daten

So fügen Sie Daten in eine Tabelle ein:

# Insert data into a table
cur.execute(
    "INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
    ("value1", "value2")
)
# Commit the transaction
conn.commit()
py
PYTHON

Schließen der Verbindung

Vergessen Sie nicht, den Cursor und die Verbindung zu schließen, wenn Sie fertig sind:

# Close the cursor and connection
cur.close()
conn.close()
py
PYTHON

Erweiterte Funktionen

COPY für Bulk Loading verwenden

Der COPY-Befehl ist hilfreich, um Daten in großen Mengen zu laden:

# Use COPY to load data from a file
with open('data.csv', 'r') as f:
    cur.copy_from(f, 'your_table', sep=',')
conn.commit()
py
PYTHON

Asynchrone Benachrichtigungen

Sie können auf asynchrone Benachrichtigungen aus der Datenbank hören:

# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
    notify = conn.notifies.pop(0)
    print("Got NOTIFY:", notify.payload)
py
PYTHON

Einführung in IronPDF

psycopg2 (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF: Die Python PDF-Bibliothek

IronPDF ist eine leistungsstarke Python-Bibliothek, die zum Erstellen, Bearbeiten und Signieren von PDFs mithilfe von HTML, CSS, Bildern und JavaScript entwickelt wurde. Sie bietet kommerzielle Leistung bei geringem Speicherbedarf. Die wichtigsten Merkmale sind:

Konvertierung von HTML zu PDF:

Konvertieren Sie HTML-Dateien, HTML-Strings und URLs in PDFs. Sie können zum Beispiel eine Webseite mit dem Chrome PDF-Renderer als PDF wiedergeben.

Plattformübergreifende Unterstützung:

Kompatibel mit verschiedenen .NET-Plattformen, einschließlich .NET Core, .NET Standard und .NET-Framework. Es unterstützt Windows, Linux und macOS.

Bearbeitung und Signierung:

Legen Sie Eigenschaften fest, fügen Sie Sicherheit mit Passwörtern und Berechtigungen hinzu, und wenden Sie digitale Signaturen auf Ihre PDFs an.

Seitenschablonen und Einstellungen:

PDFs mit Kopf- und Fußzeilen, Seitenzahlen und einstellbaren Rändern anpassen. Unterstützt responsive Layouts und benutzerdefinierte Papierformate.

Normenkonformität:

Einhaltung von PDF-Standards wie PDF/A und PDF/UA. Es unterstützt die UTF-8-Zeichenkodierung und verarbeitet Assets wie Bilder, CSS und Schriftarten.

Erzeugen von PDF-Dokumenten mit IronPDF und psycopg2

import psycopg2
from ironpdf import * 
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
    dbname="demo",
    user="postgres",
    password="postgres",
    host="localhost",
    port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
    INSERT INTO users (id, name, age)
    VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall() 
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
    print(row)
    content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
py
PYTHON

Code Erläuterung

Das Skript demonstriert die Interaktion mit einer PostgreSQL-Datenbank unter Verwendung von `psycopg2`, Datenmanipulation (Erstellung, Einfügung, Abruf) und Integration mit `IronPDF` zur Dokumentenerstellung.

  1. Datenbankverbindung: Verbindet sich mit einer lokalen PostgreSQL-Datenbank namens "demo" unter Verwendung von psycopg2, wobei Anmeldedaten für die Benutzerauthentifizierung und Datenbankhost-Details angegeben werden.

  2. Tabellenerstellung: Definiert und führt eine SQL-Anweisung aus, um eine Tabelle mit dem Namen `users` zu erstellen, falls sie nicht bereits existiert. Die Tabelle hat die Spalten `id` (Integer, Primärschlüssel), `name` (Text, nicht null) und `age` (Integer).

  3. Daten Einfügen: Fügt drei Datenzeilen in die `users`-Tabelle mittels parametrisierter Abfragen ein (`userData1`, `userData2`, `userData3`). Jedes Tupel enthält Werte für `id`, `name` und `age`.

  4. Transaktionsmanagement: Bestätigt die Transaktion nach der Tabellenerstellung und Dateneinfügung, um sicherzustellen, dass Änderungen in der Datenbank gespeichert werden.

  5. Datenabruf: Führt eine SELECT-Abfrage aus, um alle Zeilen (`SELECT * FROM users`) aus der `users`-Tabelle abzurufen, und holt die Ergebnisse (`rows`) ein.

  6. PDF-Erstellung: Verwendet IronPDF, um ein PDF-Dokument aus HTML-Inhalten zu generieren. Der HTML-Inhalt enthält einen Titel und eine formatierte Darstellung der abgerufenen Daten aus der `users`-Tabelle.

  7. Dateispeicherung: Speichert das generierte PDF-Dokument als "Demopsycopg2.pdf" im aktuellen Verzeichnis.

  8. Schließen der Verbindung: Diese Funktion schließt den Datenbank-Cursor (`cur`) und die Datenbankverbindung (`conn`), um Ressourcen freizugeben und eine ordnungsgemäße Bereinigung sicherzustellen.

    Für die Behandlung von Ausnahmen können Sie das Skript in einen try-catch-Block einbetten, um sicherzustellen, dass alle Fehlervorgänge behandelt werden, wenn eine der Abfragen fehlschlägt oder die Verbindung fehlschlägt.

Ausgabe

psycopg2 (Wie es für Entwickler funktioniert): Abbildung 2 - Beispielkonsolenausgabe

PDF

psycopg2 (Wie es für Entwickler funktioniert): Abbildung 3 - Beispielausgabe, die psycopg2 verwendet, um Daten zu speichern und abzurufen, während IronPDF einen PDF-Bericht erstellt

IronPDF-Lizenz

IronPDF läuft mit dem Python-Lizenzschlüssel. IronPDF for Python bietet einen kostenlosen Testlizenzschlüssel, mit dem die Benutzer die umfangreichen Funktionen vor dem Kauf testen können.

Setzen Sie den Lizenzschlüssel an den Anfang des Skripts, bevor Sie das IronPDF-Paket verwenden:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
py
PYTHON

Schlussfolgerung

Psycopg2 ist eine leistungsfähige und flexible Bibliothek für die Interaktion mit PostgreSQL-Datenbanken in Python. Seine umfassenden Funktionen und sein effizientes Design machen es zu einer hervorragenden Wahl für einfache und komplexe Datenbankoperationen. IronPDF ist ein robustes Python-Paket und eine Bibliothek, die die Erstellung, Bearbeitung und Darstellung von PDF-Dokumenten direkt aus Python-Anwendungen erleichtert. Es bietet umfassende Funktionen für die Erzeugung von PDFs aus HTML-Inhalten und lässt sich nahtlos in bestehende Webtechnologien integrieren. Mit IronPDF können Entwickler die Erstellung von Berichten, Rechnungen und anderen Dokumenten effizient automatisieren und so die Produktivität und Benutzerfreundlichkeit verbessern. Zu seinen Funktionen gehören interaktive PDF-Formulare, Textextraktion, das Zusammenführen und Aufteilen von PDFs und das Hinzufügen von Sicherheitsfunktionen wie Passwortschutz. Die Vielseitigkeit und Benutzerfreundlichkeit von IronPDF machen es zu einem wertvollen Werkzeug für Entwickler, die PDF-Generierungs- und -Manipulationsfunktionen in ihren Python-Projekten implementieren möchten.

Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.
< PREVIOUS
sqlite3 Python (Wie es für Entwickler funktioniert)
NÄCHSTES >
crc32c Python (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2025.5 gerade veröffentlicht

Lizenzen anzeigen >