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. En l’absence de correspondance, une exception Book.DoesNotExist est levée ; s’il y en a plusieurs, une exception Book.MultipleObjectsReturned est levée. Vous les interceptez comme n’importe quelle exception. Ici, deux livres 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 n’est pas sur l’étagère, et afficheUlysses is not on the shelfau lieu de planter.
Appuie sur Run. 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. Cherche 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