Interroger avec la session
Lire et filtrer les données
Interroger avec la session est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.
La session
Tout le travail de l’ORM passe par une session. Elle gère une unité de travail : le suivi des objets nouveaux, modifiés et supprimés, ainsi que les échanges avec la base de données.
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
engine = create_engine('sqlite:///:memory:')
with Session(engine) as session:
print('Session open:', session)Ajout d’objets
session.add() met un nouvel objet en attente. Rien n’est envoyé à la base de données tant que vous n’avez pas exécuté commit().
from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')Validation des modifications
session.commit() vide les modifications en attente et valide la transaction, ce qui les rend permanentes.
# with Session(engine) as session:
# session.add(User(name='Alice'))
# session.commit()
print('commit persists the work')Interroger avec select()
La version moderne de SQLAlchemy lit les données avec select(), exécuté via la session. scalars() renvoie des instances de modèles.
from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')Récupérer toutes les lignes
session.scalars(select(User)).all() renvoie une liste de tous les objets User de la table.
from sqlalchemy import select
# all_users = session.scalars(select(User)).all()
# for u in all_users:
# print(u.name)
print('all() returns a list of objects')Filtrer avec where()
Ajoutez une clause where() pour filtrer. Comparez une colonne mappée avec un opérateur Python ordinaire.
from sqlalchemy import select
# stmt = select(User).where(User.age > 28)
# adults = session.scalars(stmt).all()
print('where(User.age > 28) filters rows')Récupérer un objet
session.scalars(stmt).first() renvoie la première correspondance ou None. one() attend exactement une ligne et lève une exception dans le cas contraire.
from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')Recherche par clé primaire
session.get(User, 1) est le moyen le plus rapide de récupérer un objet unique à partir de sa clé primaire.
# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')Trier les résultats
Chaînez order_by() pour trier. Utilisez .desc() sur une colonne pour obtenir un ordre décroissant.
from sqlalchemy import select
# stmt = select(User).order_by(User.age.desc())
# sorted_users = session.scalars(stmt).all()
print('order_by(User.age.desc()) sorts results')Modifier un objet
Modifiez un attribut d’un objet chargé, puis exécutez commit(). La session détecte la modification et génère une instruction UPDATE.
# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit() # auto UPDATE
print('Edit attribute, then commit')Supprimer un objet
session.delete(obj) marque un objet pour sa suppression. L’instruction DELETE est exécutée lors de la prochaine validation.
# user = session.get(User, 1)
# session.delete(user)
# session.commit() # row removed
print('delete(obj) then commit removes the row')Vérification rapide
Vérifiez vos connaissances sur les sessions.
Récapitulatif
Vous avez appris à lire et à modifier des données avec la session.
- La
Sessionsuit votre unité de travail add()met les objets en attente,commit()les rend persistantsselect()+scalars()lisent les objets ;where()filtre les résultatssession.get()récupère un objet par sa clé primaire ; les modifications etdelete()sont appliquées lors de la validation
Questions Fréquemment Posées
La leçon « Interroger avec la session » est-elle gratuite ?
Oui — le texte complet de « Interroger avec la session » 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 « Interroger avec la session » ?
Lire et filtrer les données 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 3 sur 4.
Combien de temps prend la leçon « Interroger avec la session » ?
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