Compter les lignes
Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 10 sur 23.
Pour savoir combien de livres de science-fiction vous possédez, vous pourriez les charger tous et les compter en Python. La base de données compte plus vite. Chacune de ces instructions exécute une petite requête et renvoie une seule réponse :
Book.objects.filter(is_read=True).count() # 1
Book.objects.filter(price__gt=20).exists() # False
len(Book.objects.all()) # 9, après avoir chargé les 9 lignescount() renvoie le nombre de lignes correspondantes. exists() renvoie True lorsqu’au moins une ligne correspond, et False lorsqu’aucune ne correspond. Ces deux méthodes s’ajoutent à la fin d’un QuerySet, après filter() ou exclude(). len() donne le même nombre que count(), mais seulement après le chargement de toutes les lignes dans Python, ce qui est lent pour une grande table.
Défi
FacileRéécris explore.py pour afficher deux lignes :
Science fiction:et le nombre de livres de science-fiction.Any Tolkien:et si un livre deJ.R.R. Tolkiense trouve sur l’étagère.
Appuie sur « Jouer » : la console affiche Science fiction: 3 et Any Tolkien: True.
Essayez vous-même
from books.models import Book
# 1. Science-fiction : combien y a-t-il de livres de science-fiction ?
# 2. Un livre de Tolkien : y a-t-il un livre de J.R.R. Tolkien sur l’étagère ?
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