SQLAlchemy Core ou ORM
Comprendre les deux couches
SQLAlchemy Core ou ORM est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que SQLAlchemy ?
SQLAlchemy est la boîte à outils Python la plus populaire pour travailler avec des bases de données relationnelles. Elle propose deux couches : Core et l'ORM.
Vous l'installez avec pip install sqlalchemy.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print('Engine:', engine)Le moteur
Les deux couches commencent par un moteur, créé avec create_engine(). Il gère le pool de connexions et sait communiquer avec votre base de données particulière au moyen d'une URL.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///app.db')
print('Dialect:', engine.dialect.name)Les deux couches
Core est une boîte à outils d'expressions SQL : vous construisez des requêtes qui correspondent étroitement au SQL.
L'ORM repose sur Core et associe les classes Python aux tables, afin que vous travailliez avec des objets plutôt qu'avec des lignes.
# Core: think in tables and SQL expressions
# ORM: think in Python classes and objects
print('Core = SQL toolkit, ORM = object mapping')Core : définir une table
Avec Core, vous décrivez explicitement les tables au moyen des objets Table et MetaData.
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
print('Table defined:', users.name)Core : construire une requête
Core construit des requêtes à l'aide d'expressions Python telles que select(), qui sont directement traduites en SQL.
from sqlalchemy import MetaData, Table, Column, Integer, String, select
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
stmt = select(users).where(users.c.name == 'Alice')
print(stmt)ORM : une classe mappée
Dans l'ORM, une classe Python représente une table. Chaque attribut correspond à une colonne. Vous interrogez et enregistrez des objets, et non des lignes brutes.
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
print('Mapped class:', User.__tablename__)Quand utiliser Core
Core convient lorsque vous souhaitez contrôler précisément le SQL généré, effectuer des traitements de données en masse ou exécuter des requêtes complexes de génération de rapports pour lesquelles les objets ajoutent un surcoût.
# Core is great for:
# - bulk inserts/updates
# - complex analytical queries
# - close control over generated SQL
print('Core: control and performance')Quand utiliser l'ORM
L'ORM convient au code applicatif courant : vous modélisez les entités métier sous forme de classes, bénéficiez du suivi des modifications et écrivez moins de code répétitif.
# ORM is great for:
# - application domain models
# - automatic change tracking
# - relationships between objects
print('ORM: productivity and clarity')Ils partagent le moteur
Comme l'ORM repose sur Core, les deux utilisent le même moteur et le même pool de connexions. Vous pouvez même les combiner dans une seule application.
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
# Core uses engine.connect()
# ORM uses a Session bound to the same engine
print('One engine powers both layers')Créer des tables
Avec l'ORM, Base.metadata.create_all(engine) émet les instructions CREATE TABLE pour toutes les classes mappées.
from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
print('Tables created')Choisir une couche
La plupart des applications utilisent par défaut l'ORM pour les tâches courantes, puis passent à Core pour les rares requêtes lourdes ou fortement optimisées. Connaître les deux vous offre davantage de flexibilité.
# Rule of thumb:
# Start with the ORM. Use Core where you need raw power.
print('Default ORM, escape to Core when needed')Vérification rapide
Vérifiez votre compréhension des deux couches.
Récapitulatif
Vous avez découvert l'architecture de SQLAlchemy.
Enginealimente l'ensemble au moyen decreate_engine()- Core est une boîte à outils d'expressions SQL axée sur le contrôle et les performances
- L'ORM associe les classes aux tables pour un code applicatif productif
- Les deux partagent le même moteur et peuvent être combinés
Questions Fréquemment Posées
La leçon « SQLAlchemy Core ou ORM » est-elle gratuite ?
Oui — le texte complet de « SQLAlchemy Core ou ORM » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « SQLAlchemy Core ou ORM » ?
Comprendre les deux couches Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « SQLAlchemy Core ou ORM » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- SQLAlchemy Core ou ORM
- Définir des modèles
- Interroger avec la session
- Relations et jointures