Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

SQL vs ORM (Pourquoi on aime SQLAlchemy)

Apprendre Flask : Le Guide Ultime
3 min de lecture
Gratuit

À l'ancienne, pour parler à une base de données, on écrivait du SQL brut : SELECT * FROM users WHERE nom = 'Dupont'

C'est bien, mais :

  1. C'est verbeux.
  2. Si tu changes de base de données (ex: tu passes de SQLite à PostgreSQL), tu dois réécrire certaines requêtes.
  3. Tu risques des failles de sécurité (Injection SQL) si tu ne fais pas attention.

La solution : L'ORM (Object Relational Mapper)

Un ORM permet de manipuler la base de données comme si on manipulait des objets Python.

  • Une Table devient une Classe.
  • Une Ligne devient une Instance de cette classe.
  • Une Colonne devient un Attribut.

Exemple :

Au lieu de :

INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com');

On écrit en Python :

alice = User(name='Alice', email='alice@mail.com')
db.session.add(alice)
db.session.commit()

C'est plus lisible, plus sûr, et ça marche avec n'importe quelle base de données (SQLite, MySQL, Postgres...).

L'ORM star de Python s'appelle SQLAlchemy. Et pour Flask, on utilise l'extension Flask-SQLAlchemy qui simplifie la configuration.

Installation

pip install flask-sqlalchemy