Comment connecter une base de données à Python ?

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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 :

                

Blogs

Book Recommendations