• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 12/12/19

Travaillez avec la console de Django

Log in or subscribe for free to enjoy all this course has to offer!

Actuellement, aucun formulaire ne permet à l'utilisateur de réserver un album. D'ailleurs, il lui serait difficile d'en sélectionner un puisque la base est vide ! Nous verrons plus tard comment configurer l'interface d'administration de Django pour ajouter des albums. Pour le moment, restons en ligne de commande et laissez-moi vous montrer comment enregistrer un nouveau contact dans la base.

Django vient avec une console interactive qui vous donne accès à l'environnement du framework. Vous pouvez ainsi utiliser les méthodes et jouer avec !

Console Django

Tapez la commande suivante pour ouvrir le shell Django :

$ ./manage.py shell
Python 3.6.2 (default, Jul 17 2017, 16:44:45)
Type 'copyright', 'credits' or 'license' for more information
>>>

Les interactions avec la base de données passent par les modèles. Importez-les pour pouvoir les utiliser :

>>> from store.models import Artist, Album

Découvrez l'API

Une fois les modèles créés, Django offre une API d'abstraction de base de données très puissante ! Grâce à elle, vous pouvez interagir avec les tables sans écrire de SQL. Voyons comment l'utiliser.

Ajouter, retrouver, modifier et supprimer un artiste

Pour ajouter un artiste, créez simplement une instance de la classe Artist puis exécutez la méthode save() :

>>> patrick = Artist(name="Patrick Bruel")
>>> patrick.save()

Voici comment le modifier et le supprimer :

>>> patrick.name = "Patrick on t'aime !"
>>> patrick.save()
>>> patrick.delete()
(1, {'store.Album_artists': 0, 'store.Artist': 1})

Ajouter un artiste à un album

La classe Album est liée à la classe Artist par une relation plusieurs à plusieurs. Voici comment retrouver et modifier les éléments associés :

>>> francis = Artist.objects.create(name="Francis Cabrel")
>>> album = Album.objects.create(title="Sarbacane")
>>> album.artists.add(francis)

Retrouver un album par son nom

Il existe plusieurs façons de retrouver des items dans la base.

>>> Artist.objects.all() # affiche toutes les données de la table
<QuerySet [<Artist: Artist object>]>
>>> Artist.objects.filter(name="Francis Cabrel")
<QuerySet [<Artist: Artist object>]>

Pourquoi les artistes sont-ils affichés ainsi ? J'aimerais y voir figurer le nom de l'artiste et non "Artist: Artist object" ! Modifions la méthode spéciale __str__ des classes pour contrôler l'affichage.

Modification de la méthode __str__

Ouvrez models.py et modifiez le comportement de la méthode __str__ :

class Artist(models.Model):
def __str__(self):
return self.name
class Contact(models.Model):
def __str__(self):
return self.name
class Album(models.Model):
def __str__(self):
return self.title
class Booking(models.Model):
def __str__(self):
return self.contact.name

Fermez le shell et redémarrez-le. Puis cherchez de nouveau Francis Cabrel pour vérifier que cela a bien fonctionné.

>>> francis = Artist.objects.filter(name="Francis Cabrel")
>>> francis
<QuerySet [<Artist: Francis Cabrel>]>

Ah ! C'est mieux !

Ajoutez quelques albums et quelques artistes afin de pouvoir continuer en ayant un premier jeu de données.

Dans le prochain chapitre nous utiliserons ce que nous venons de voir pour mettre à jour les vues et afficher les détails d'un disque. Avant, lisez la documentation de Django consacrée aux requêtes. A tout de suite !

Code de ce chapitre

Retrouvez l'intégralité du code de ce chapitre sur le dépôt GitHub.

Example of certificate of achievement
Example of certificate of achievement