PyMySQL – Pilote MySQL pour 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

Introduction

MySQL est l'un des systèmes de gestion de bases de données relationnelles les plus populaires, largement utilisé dans le développement web et les solutions d'entreprise. Pour interagir avec MySQL en Python, le pilote PyMySQL est souvent privilégié : une implémentation purement Python du protocole MySQL. Simple d'utilisation, activement maintenu et compatible avec des bibliothèques populaires comme SQLAlchemy et Pandas.

PyMySQL est un pilote pour MySQL qui permet de se connecter à une base de données, d'exécuter des requêtes SQL, de gérer les transactions et de s'intégrer aux frameworks web sans configuration complexe. Contrairement à d'autres pilotes, PyMySQL est entièrement écrit en Python, ce qui le rend multiplateforme et facile à installer.

Qu'est-ce que PyMySQL ?

PyMySQL est une bibliothèque cliente Python qui implémente le protocole MySQL Client/Serveur. Elle fournit une interface pour se connecter à un serveur MySQL et exécuter des requêtes SQL. La bibliothèque suit la spécification Python Database API 2.0 (PEP 249), garantissant ainsi la compatibilité avec d'autres applications Python.

Principales caractéristiques de PyMySQL

  • Python pur : Aucune dépendance externe en C/C++ nécessaire
  • Compatibilité : Prend en charge MySQL versions 5.5 et ultérieures
  • Sécurité : Protection intégrée contre les injections SQL
  • Performance : Optimisé pour l'exécution rapide des requêtes
  • Simplicité d'utilisation : API intuitive et facile à prendre en main

Installation et connexion à MySQL

Installation

pip install pymysql

Pour des fonctionnalités supplémentaires, il est également recommandé d'installer :

pip install pymysql[rsa]  # pour le support de l'authentification RSA

Connexion à la base de données

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='mot_de_passe',
    database='test_db',
    port=3306,
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

DictCursor permet d'obtenir les résultats sous forme de dictionnaires plutôt que de tuples, ce qui rend la manipulation des données plus pratique.

Paramètres de connexion

Paramètre Description Type Valeur par défaut
host Hôte du serveur MySQL str 'localhost'
port Port du serveur int 3306
user Nom d'utilisateur str None
password Mot de passe str None
database Nom de la base de données str None
charset Encodage str 'utf8mb4'
autocommit Validation automatique bool False
cursorclass Classe du curseur class Cursor

Création d'une base de données et de tables

# Création d'une base de données
with connection.cursor() as cursor:
    cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")

# Création d'une table
with connection.cursor() as cursor:
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS utilisateurs (
            id INT AUTO_INCREMENT PRIMARY KEY,
            nom VARCHAR(100) NOT NULL,
            email VARCHAR(100) UNIQUE,
            age INT,
            date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
    """)
connection.commit()

Opérations CRUD avec PyMySQL

Insertion de données

# Insertion d'un seul enregistrement
with connection                    

Recommendations