PYTHON HILFE

psycopg2 (Wie es für Entwickler funktioniert)

Veröffentlicht 13. August 2024
Teilen Sie:

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 uns mit folgenden Themen befassen IronPDFeine Bibliothek zur PDF-Erzeugung von IronSoftware.

Einführung

Psycopg2 ist so konzipiert, dass es effizient und sicher ist und sich daher für Anwendungen mit vielen Threads eignet. Einige der wichtigsten Merkmale sind:

  • Thread-Sicherheit: Mehrere Threads können sich dieselbe Verbindung teilen - die Fähigkeit, Multi-Thread-Anwendungen zu handhaben, die viele Cursor erstellen und zerstören.
  • Clientseitige und serverseitige Cursor: Effizienter Umgang mit großen Datenmengen.
  • Asynchrone Kommunikation und Benachrichtigungen: Unterstützung für asynchrone Operationen.
  • COPY-Unterstützung: Effizientes Massenladen von Daten mit COPY TO und COPY FROM.
  • Anpassungs-System: Automatische Anpassung von Python-Typen an PostgreSQL-Typen; das Paket wird automatisch auf die passenden Postgresql-Datentypen übertragen.
  • Unicode- und Python-3-freundlich: Volle Unterstützung für Unicode und Python 3.

Einrichtung

Sie können Folgendes installieren psycopg2 mit pip:

pip install psycopg2

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

python setup.py build
sudo python setup.py install
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

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()
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)
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()
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()
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()
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)
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 zum Erstellen, Bearbeiten und Signieren von PDFs mit HTML, CSS, Bildern und JavaScript. Sie bietet kommerzielle Leistung bei geringem Speicherbedarf. Die wichtigsten Merkmale sind:

HTML zu PDF Konvertierung:

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.

Redaktion und Unterzeichnung:

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

Seitenvorlagen und Einstellungen:

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

Einhaltung der Normen:

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")
PYTHON

Code Erläuterung

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

  1. Datenbankverbindung: Stellt eine Verbindung zu einer lokalen PostgreSQL-Datenbank mit dem Namen "demo" unter Verwendung von `psycopg2` her, wobei Anmeldeinformationen für die Benutzerauthentifizierung und Datenbank-Hostdetails angegeben werden.

  2. Tabellenerstellung: Definiert und führt eine SQL-Anweisung aus, um eine Tabelle mit dem Namen "Benutzer" zu erstellen, falls diese noch nicht vorhanden ist. Die Tabelle hat die Spalten `id` (ganzzahl, Primärschlüssel), `Name` (text, nicht null)und `age` (ganzzahl).

  3. Dateneinfügung: Fügt mit Hilfe von parametrisierten Abfragen drei Datenzeilen in die Tabelle "Benutzer" ein (`BenutzerDaten1`, `BenutzerDaten2`, `BenutzerDaten3`). Jedes Tupel enthält Werte für `id`, `Name` und `Alter`.

  4. Transaktionsverwaltung: Bestätigt die Transaktion nach der Tabellenerstellung und dem Einfügen von Daten, um sicherzustellen, dass die Änderungen in der Datenbank gespeichert werden.

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

  6. PDF-Erzeugung: Verwendet "IronPDF", um aus HTML-Inhalten ein PDF-Dokument zu erzeugen. Der HTML-Inhalt enthält einen Titel und eine formatierte Darstellung der abgerufenen Daten aus der Tabelle "Benutzer".

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

  8. Verbindung schließen: Mit dieser Funktion wird der Datenbankcursor geschlossen (`cur`) und die Datenbankverbindung (`conn`) um Ressourcen freizugeben und eine ordnungsgemäße Säuberung zu gewährleisten.

    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 - Beispiel einer Konsolenausgabe

PDF

psycopg2 (Wie es für Entwickler funktioniert): Abbildung 3 - Beispiel einer Ausgabe, bei der psycopg2 zum Speichern und Abrufen von Daten verwendet wird, während IronPDF einen PDF-Report erzeugt

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"
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 ermöglicht. 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.

< PREVIOUS
sqlite3 Python (Wie es für Entwickler funktioniert)
NÄCHSTES >
crc32c Python (Wie es für Entwickler funktioniert)

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

pip install gratuit Lizenzen anzeigen >