Les bases de la connexion aux bases de données en Python
La gestion des bases de données est essentielle dans tout projet moderne. Stocker, récupérer et organiser les données permet de créer des applications complètes, qu'il s'agisse de scripts simples ou de services web complexes.
Python offre de nombreuses façons d'interagir avec les bases de données. Dans cet article, nous allons explorer en détail la connexion à une base de données avec le module sqlite3. Nous verrons également comment utiliser le format JSON pour sauvegarder des données avec json.dump. Vous découvrirez les aspects clés de ces technologies.
Pourquoi utiliser une base de données dans vos projets
Si vos programmes manipulent des données à conserver entre les sessions, une base de données est indispensable. La base de données Python sqlite3 offre une solution fiable pour stocker vos informations.
Avantages des bases de données
L'utilisation de bases de données dans vos projets Python présente plusieurs avantages :
• Stockage pratique des données structurées • Accès rapide et filtrage des informations • Gestion centralisée des données • Intégrité des données garantie • Possibilité de créer des sauvegardes • Solution évolutive
Travailler avec SQLite en Python
SQLite est le choix idéal pour les petits projets. Intégrée directement dans l'application, elle ne nécessite aucun serveur dédié et fonctionne avec des fichiers au format .db.
Connexion à une base de données SQLite
Le module sqlite3 fait partie de la bibliothèque standard de Python. Aucune installation supplémentaire n'est nécessaire.
import sqlite3
# Connexion à la base de données (le fichier est créé s'il n'existe pas)
conn = sqlite3.connect('example.db')
# Création d'un curseur pour exécuter les requêtes SQL
cursor = conn.cursor()
Si la base de données n'existe pas, le fichier est automatiquement créé lors de la connexion. Cela simplifie le démarrage de nouveaux projets.
Création d'une table dans la base de données
Avant d'ajouter des données, il faut définir la structure de la table avec la commande SQL CREATE TABLE :
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
''')
conn.commit()
La clause IF NOT EXISTS évite les erreurs si la table existe déjà. PRIMARY KEY AUTOINCREMENT garantit l'attribution automatique d'identifiants uniques.
Insertion de données dans la table
Pour insérer des données, utilisez la commande INSERT INTO. Privilégiez les requêtes paramétrées pour vous protéger des injections SQL :
cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))
# Ajout de plusieurs enregistrements en une fois
users_data = [
('Bob', 25),
('Carol', 35),
('David', 40)
]
cursor.executemany('''
INSERT INTO users (name, age) VALUES (?, ?)
''', users_data)
conn.commit()
La méthode executemany permet d'ajouter efficacement plusieurs enregistrements en une seule opération.
Lecture et extraction des données
Plusieurs méthodes sont disponibles pour récupérer les données, selon le nombre d'enregistrements souhaité :
# Récupération de tous les enregistrements
cursor.execute('SELECT * FROM users')
all_rows = cursor.fetchall()
for row in all_rows:
print(row)
# Récupération d'un seul enregistrement
cursor.execute('SELECT * FROM users WHERE age > ?', (30,))
one_row = cursor.fetchone()
print(one_row)
# Récupération de plusieurs enregistrements
cursor.execute('SELECT name, age FROM users ORDER BY age')
some_rows = cursor.fetchmany(2)
for row in some_rows:
print(f"Nom : {row[0]}, Âge : {row[1]}")
Mise à jour et suppression des données
Les commandes UPDATE et DELETE permettent de modifier ou supprimer des enregistrements existants :