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!