0Pricing
Python Academy · Leçon

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 Session suit votre unité de travail
  • add() met les objets en attente, commit() les rend persistants
  • select() + scalars() lisent les objets ; where() filtre les résultats
  • session.get() récupère un objet par sa clé primaire ; les modifications et delete() 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

  1. SQLAlchemy Core ou ORM
  2. Définir des modèles
  3. Interroger avec la session
  4. Relations et jointures
← Retour à Python Academy