All et Get
Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 8 sur 23.
Avant qu’une page puisse afficher un livre, votre code doit le lire. Book.objects.all() renvoie un QuerySet, un objet semblable à une liste que vous pouvez parcourir ; chaque élément est un Book dont les champs sont des attributs. get() récupère exactement une ligne :
for book in Book.objects.all():
print(book.author, book.year)
emma = Book.objects.get(title="Emma")
print(emma.year) # 1815get() attend une seule correspondance. Aucune correspondance déclenche Book.DoesNotExist, plusieurs déclenchent Book.MultipleObjectsReturned, et vous les interceptez comme n’importe quelle exception. Deux livres ici sont de Jane Austen :
try:
Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
print("More than one")Si elle n’est pas interceptée, l’exception arrête le script à cette ligne.
Défi
FacileRéécris explore.py :
- Affiche le titre de chaque livre, un par ligne.
- Récupère
Duneet afficheDune costsainsi que son prix :Dune costs 9.99. - Recherche
Ulysses, qui ne se trouve pas sur l’étagère, et afficheUlysses is not on the shelfau lieu de provoquer une erreur.
Appuie sur « Jouer » : la Console affiche les neuf titres, puis les deux phrases.
Essayez vous-même
from books.models import Book
# 1. Affiche le titre de chaque livre, un par ligne.
# 2. Récupère Dune et affiche son prix.
# 3. Recherche Ulysses.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Modèles et interface d’administration
2Interroger avec l’ORM
Créer des lignesAll et GetFiltres et recherchesCompter les lignesTrier les lignesMettre à jour et supprimer3Des pages issues de la base de données
Une liste issue de la base de donnéesUne page pour chaque livreEntraînez-vous par vous-même : Playground Django