[Python3] PostgreSQL verwenden

Um mit einer PostgreSQL Datenbank eine Verbindung aufzubauen, Daten auszulesen, dafür kann man folgendes Skript verwenden:

Zuerst einmal installieren wir psycopg:

sudo python -m pip install psycopg
Oder suso pip install psycopg

Dann bereiten wir die Datenbank „sample“ vor:

DROP TABLE IF EXISTS `sample`;
CREATE TABLE IF NOT EXISTS `sample` (
  `id` int NOT NULL AUTO_INCREMENT,
  `record_no` int NOT NULL,
  `description` varchar(50) NOT NULL,
  `start_date` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `record_no_key` (`record_no`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
COMMIT;

Dann das Script:

sudo nano psycopg_test.py
import psycopg
from psycopg import connect as pg_connect, rows as pg_rows

connection = None

try:
    connection = pg_connect(
            user="postgres",
            password="admin",
            host="127.0.0.1",
            port="5432",
            dbname="test_py",
            row_factory=pg_rows.namedtuple_row
    )
    cursor = connection.cursor()
except (Exception, psycopg.Error) as error:
    print("Error while connecting to PostgreSQL", error)

select_Query = 'SELECT * FROM sample'

cursor.execute(select_Query)

samples = cursor.fetchall()

for sample in samples:
    print("description = ", sample.description, "\n")

if connection:
    cursor.close()
    connection.close()
    print("PostgreSQK connection is closed")

Wir verwenden nur psycopg, also genau genommen psycopg3.

Bitte das Script nicht psycopg.py benennen, da Python den Dateinamen als Objekt erachtet und es natürlich psycopg nicht findet!

sudo pythob psycopg_test.py

Getestet unter CentOs 7 und Debian 11 und Windows 10

Wie immer, alle Angaben ohne Gewähr, Anwendung auf eigene Gefahr und Verantwortung, ich übernehme keinerlei Haftung für Ausfälle, Datenverlust oder andere finanzielle Schäden.

Happy coding!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.