Se connecter à une base de données PostgreSQL en python avec Psycopg2

Ce tutoriel Python PostgreSQL montre comment utiliser le module Psycopg2 pour se connecter à PostgreSQL et effectuer des requêtes SQL, des opérations sur la base de données. Il existe de nombreuses façons de se connecter à une base de données PostgreSQL depuis Python.

Nous utiliserons Psycopg2 parce que c’est sans doute le module le plus populaire et le plus stable pour travailler avec PostgreSQL.

En effet :

  • Il est utilisé dans la plupart des frameworks Python et Postgres.
  • Il est également activement maintenu et supporte toutes les versions de python depuis python 2.
  • Il est thread-safe et conçu pour les applications fortement multi-threadées. Notez que les threads peuvent partager les connexions.

Installation

Pour l’installation, rien de plus simple. Rendez-vous dans la console python et tapez : pip install psycopg2

Installation de psycopg2 dans la console

Connexion

Programme pour établir la connexion entre Python et une base de données PostgreSQL

import psycopg2
DB_NAME = "mabdd" #modifier
DB_USER = "Denis" #modifier
DB_PASS = "unmdpsécurisé" #modifier
DB_HOST = "le.server.de.denis.fr" #modifier
DB_PORT = "5432" #ne pas modifier, c'est le port PostgreSQL
try:
conn = psycopg2.connect(database=DB_NAME,
user=DB_USER,
password=DB_PASS,
host=DB_HOST,
port=DB_PORT)
print("Database connectée")
except:
print("Database non connectée")

Création d’une Table

cur = conn.cursor() # creation du curseur, basé sur la variable conn qui contient la connexion à la bdd
# executer une requête qui créer la table
cur.execute("""
CREATE TABLE Employee
(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
EMAIL TEXT NOT NULL
)
""")
# valider les modifications
conn.commit()
print("Table créée avec succès")

Insertion dans une table

cur = conn.cursor()
cur.execute("""
INSERT INTO Employee (ID,NAME,EMAIL) VALUES
(1,'Paul Fouchet','paul@fouchet.com'),
(2,'Adrien dubois','adriendb@gmail.com')
""")
conn.commit()

Passer des paramètres aux requêtes SQL


Les variables Python sont converties en valeurs SQL avec Psycopg, Python détermine la fonction utilisée pour convertir l’objet en une représentation de chaîne de caractères adaptée à PostgreSQL.Le passage de paramètres à une instruction SQL se fait dans des fonctions telles que cursor.execute() en utilisant %s comme caractère générique dans l’instruction SQL.

Récupérer et afficher de la donnée dans le terminal

cur.execute("SELECT * FROM Employee")
rows = cur.fetchall()
for data in rows:
print("ID :" + str(data[0]))
print("NAME :" + data[1])
print("EMAIL :" + data[2])
print('Data récupérée avec succès')

Fermeture de la connexion

A la fin de votre programme, n’oubliez pas de fermer la connexion

conn.close()

Les principaux points d’entrée de Psycopg sont :

  • La fonction connect() crée une nouvelle session de base de données et renvoie une nouvelle instance de connexion.
  • La classe connexion renferme une session de base de données. Elle permet de :

-créer une nouvelle instance de curseur

-de terminer une transaction en utilisant les méthodes commit() ou rollback().

  • Le curseur permet d’interagir avec la base de données :

-envoyer des commandes à la base de données en utilisant les méthodes execute() et executemany().

-récupérer des données de la base de données en utilisant des méthodes telles que fetchone(), fetchmany(), fetchall(), ou par itération.