Psycopg2 : Guide complet pour utiliser PostgreSQL avec Python
Introduction
PostgreSQL est un système de gestion de bases de données relationnelles open source puissant, réputé pour sa fiabilité, son évolutivité et sa prise en charge de types de données avancés. Pour interagir avec PostgreSQL depuis Python, l'outil le plus populaire et le plus fiable est Psycopg2, le pilote synchrone officiel. Il offre une solution stable et performante pour se connecter à la base de données, exécuter des requêtes SQL, gérer les transactions et s'intégrer aux frameworks web.
Psycopg2 est la référence de facto pour travailler avec PostgreSQL dans les projets Python, grâce à sa maturité, sa richesse fonctionnelle et le soutien actif de la communauté des développeurs.
Qu'est-ce que Psycopg2 ?
Psycopg2 est un adaptateur Python pour PostgreSQL, écrit en C et utilisant libpq (la bibliothèque cliente officielle de PostgreSQL). Cette bibliothèque est entièrement conforme à la spécification DB-API 2.0 et offre de nombreuses fonctionnalités supplémentaires spécifiques à PostgreSQL.
Principales fonctionnalités de Psycopg2 :
- Haute performance : Grâce à son implémentation en C et à une interaction optimisée avec libpq
- Sécurité : Protection intégrée contre les injections SQL via des requêtes paramétrées
- Gestion des transactions : Contrôle total des transactions avec possibilité de gestion automatique
- Compatibilité des types de données : Conversion automatique entre les types PostgreSQL et Python
- Prise en charge des extensions : Travail avec JSON, UUID, tableaux, hstore et autres types de données PostgreSQL
- Sécurité des threads : Utilisation possible dans des applications multithreadées
Installation et configuration
Installation de la bibliothèque
pip install psycopg2-binary
Pour un environnement de production, il est recommandé d'utiliser la version complète :
pip install psycopg2
Prérequis système
Avant l'installation, assurez-vous que les dépendances nécessaires sont installées sur votre système :
Ubuntu/Debian :
sudo apt-get install libpq-dev python3-dev
CentOS/RHEL :
sudo yum install postgresql-devel python3-devel
macOS :
brew install postgresql
Connexion à la base de données
Connexion de base
import psycopg2
# Connexion à PostgreSQL
conn = psycopg2.connect(
dbname="mydb",
user="postgres",
password="password",
host="localhost",
port="5432"
)
# Création d'un curseur
cur = conn.cursor()
Connexion via une chaîne de connexion
conn = psycopg2.connect("postgresql://user:password@localhost:5432/dbname")
Connexion avec paramètres supplémentaires
conn = psycopg2.connect(
dbname="mydb",
user="postgres",
password="password",
host="localhost",
port="5432",
sslmode="require",
connect_timeout=10,
application_name="my_app"
)
Utilisation des gestionnaires de contexte
import psycopg2
from contextlib import contextmanager
@contextmanager
def get_db_connection():
conn = psycopg2.connect(
dbname="mydb",
user="postgres",
password="password",
host="localhost"
)
try:
yield conn
finally:
conn.close()
# Utilisation
with get_db_connection() as conn:
with conn.cursor() as cur:
cur.execute("SELECT * FROM users")
results = cur.fetchal Aussi dans la bibliothèque
gRPC pour C++ : bibliothèques, exemples et guide d'utilisation
Envoi de SMS en TypeScript : API, bibliothèques et intégration
Analyse HTML en PHP : aperçu des bibliothèques et outils
Autorisation et authentification en C++ : bibliothèques, exemples et implémentation