Gérer manuellement une collection de DVD peut rapidement devenir fastidieux, notamment quand les données ne sont pas bien organisées.
Sans une solution adéquate, vous risquez de perdre du temps à chercher des informations et à gérer les erreurs de saisie, ce qui complique la gestion des collections au quotidien.
Cet exercice vous propose de créer une application en Python avec SQLite pour automatiser la gestion des DVD, rendant l’organisation plus simple et efficace.
Exercice pratique : Création d'une application de gestion de DVD avec SQLite
Dans cet exercice, nous allons implémenter une application en Python pour gérer une collection de DVD. L’objectif est de permettre à l’utilisateur d’ajouter, de lister et de supprimer des DVD à partir d’une base de données SQLite.
Fonctionnalités d'une gestion de DVD dans un exercice en Python
Le programme doit offrir les fonctionnalités suivantes :
- Ajouter des DVD : permettre à l’utilisateur de renseigner les détails d’un DVD (titre, réalisateur, année) et de les stocker dans la base de données.
- Lister les DVD : afficher la liste complète des DVD présents dans la base de données.
- Supprimer des DVD : offrir la possibilité de supprimer un DVD de la base de données.
Les classes à utiliser dans un exercice en Python
Pour répondre aux exigences de cet exercice, le programme utilisera deux classes principales : DVD et DVDManager.
- La classe DVD :
La classe DVD représente un DVD individuel dans la collection. Elle encapsule les détails d’un DVD et possède les attributs suivants :
- titre : le titre du DVD (type : chaîne de caractères),
- réalisateur : le réalisateur du DVD (type : chaîne de caractères),
- année : l’année de sortie du DVD (type : entier).
La classe définit également une méthode spéciale __str__()
, qui permet de formater les informations du DVD sous forme de chaîne de caractères dans le format suivant :
- La classe DVDManager :
La classe DVDManager représente le gestionnaire de la collection de DVD. Elle est chargée de toutes les opérations de gestion de la collection via la base de données SQLite.
La classe DVDManager doit disposer de plusieurs méthodes essentielles pour gérer la collection de DVD. Ces méthodes permettront d’effectuer les différentes actions du menu principal, comme l’affichage, l’ajout, la suppression de DVD, ainsi que la fermeture du programme. Voici les méthodes que la classe doit inclure, chacune jouant un rôle spécifique dans la gestion de la collection.
- __init__() : Le constructeur de la classe, qui crée une connexion à la base de données SQLite en utilisant le fichier collection.db. Si la table DVD n’existe pas, elle est créée automatiquement.
- create_table() : Cette méthode crée la table DVD dans la base de données si elle n’existe pas déjà. La structure de la table inclut un identifiant unique (id), un titre, un réalisateur, et une année.
- ajouter_dvd(dvd) : Cette méthode ajoute un DVD à la base de données. Elle prend en paramètre un objet DVD et insère ses attributs (titre, réalisateur, année) dans la table DVD.
- lister_dvd() : Cette méthode affiche la liste complète des DVD enregistrés dans la base de données. Elle utilise la méthode __str__() de la classe DVD pour formater les informations avant de les afficher.
- supprimer_dvd(id) : Cette méthode permet de supprimer un DVD de la base de données en utilisant son identifiant unique (id).
- fermer_connexion() : Cette méthode ferme la connexion active à la base de données, assurant ainsi que toutes les modifications sont correctement enregistrées.
Exploitez la persistance des données en python
Menu principal du programme de gestion de DVD
Dans ce programme de gestion de collection de DVD, il est essentiel d’offrir à l’utilisateur une interface intuitive pour interagir facilement avec les données stockées. Pour cela, un menu principal doit être mis en place, permettant d’effectuer plusieurs actions courantes liées à la gestion des DVD.
Le menu principal propose plusieurs options qui couvrent les opérations de base de gestion de la collection. Les options sont les suivantes :
- Afficher la liste des DVD
Cette option permet à l’utilisateur de consulter l’intégralité des DVD présents dans la collection. Lorsque cette option est sélectionnée, le programme doit afficher la liste détaillée des DVD avec toutes les informations pertinentes comme le titre, l’année de sortie, le genre, etc. Cela permet à l’utilisateur de vérifier rapidement les éléments qu’il possède dans sa collection. - Ajouter un DVD
Lorsqu’un nouvel élément doit être ajouté à la collection, l’utilisateur sélectionne cette option. Le programme invite alors l’utilisateur à entrer les informations nécessaires (titre du film, réalisateur, année de sortie, etc.) pour créer un nouvel enregistrement dans la collection. Une fois l’opération validée, le DVD est stocké dans le système. - Supprimer un DVD
Si un DVD doit être retiré de la collection, l’utilisateur peut sélectionner cette option. Le programme demandera alors de spécifier quel DVD doit être supprimé en se basant sur une information unique comme le titre ou un identifiant spécifique. Une fois confirmé, le DVD est retiré définitivement de la liste. - Quitter le programme
Pour fermer le programme, l’utilisateur peut sélectionner cette option. Le programme sauvegarde alors les modifications éventuelles dans la collection et se termine proprement. Cela garantit que toutes les modifications effectuées sont bien enregistrées avant la fermeture.
Vue générale du programme de gestion DVD dans un exercice en Python
Pour vous donner une idée plus précise du comportement attendu du programme, voici une capture d’écran montrant le résultat après son exécution. Cette capture illustre comment le menu principal est affiché, ainsi que l’ajout, l’affichage et la suppression de DVD dans la collection. En suivant ces étapes, votre programme devrait offrir une expérience fluide et interactive à l’utilisateur, lui permettant de gérer facilement sa collection de DVD.
Correction suggérée dans un exercice en Python : Développer un programme de gestion de DVD
Pour résoudre cet exercice, nous allons diviser notre solution en plusieurs étapes logiques. Nous commencerons par la création des classes nécessaires, puis nous implémenterons les méthodes pour manipuler les DVD via une base de données SQLite, et enfin, nous allons créer un menu interactif pour permettre à l’utilisateur d’interagir avec notre programme.
Développer la classe DVD
La classe DVD représente chaque DVD individuel dans la collection. Elle contient les informations essentielles sur un DVD, telles que son titre, le réalisateur et l’année de production. La méthode __str__
est également définie pour fournir une représentation textuelle du DVD, qui sera utile lors de l’affichage de la liste des DVD.
class DVD:
def __init__(self, titre, realisateur, annee):
self.titre = titre
self.realisateur = realisateur
self.annee = annee
def __str__(self):
return f"{self.titre} ({self.annee}) réalisé par {self.realisateur}"
Cette classe est simple et efficace, elle permet de créer des objets DVD avec trois attributs : le titre, le réalisateur, et l’année. La méthode __str__
facilite l’affichage formaté d’un DVD.
Développer la classe DVDManager dans un exercice en Python
La classe DVDManager est responsable de gérer l’ensemble des DVD à l’aide d’une base de données SQLite. Elle permet d’ajouter, de lister et de supprimer des DVD dans la base de données, ainsi que de gérer la connexion à la base de données.
Voici le code de la classe DVDManager :
import sqlite3
from Dvd import DVD
class DVDManager:
def __init__(self):
self.conn = sqlite3.connect('collection.db')
self.create_table()
def create_table(self):
request = '''CREATE TABLE IF NOT EXISTS dvd
(id INTEGER PRIMARY KEY AUTOINCREMENT,
titre TEXT,
realisateur TEXT,
annee INTEGER);'''
self.conn.execute(request)
self.conn.commit
def ajouter_dvd(self, dvd):
request = "INSERT INTO dvd (titre, annee, realisateur) VALUES ('{0}','{1}','{2}')".format(dvd.titre, dvd.annee, dvd.realisateur)
self.conn.execute(request)
self.conn.commit()
def lister_dvd(self):
cursor = self.conn.execute("SELECT * FROM dvd")
for row in cursor:
dvd = DVD(row[1], row[2], row[3])
print("ID = " + str(row[0]) + " " + str(dvd))
def supprimer_dvd(self, id):
request = "DELETE FROM dvd WHERE id = '{0}'".format(id)
self.conn.execute(request)
self.conn.commit()
def fermer_connexion(self):
self.conn.close()
Cette classe permet une gestion complète de la base de données, de la création de la table à la manipulation des DVD.
Développer la classe DVDManager
Le menu interactif permet à l’utilisateur de choisir une action à effectuer parmi les options suivantes : afficher la liste des DVD, ajouter un DVD, supprimer un DVD, ou quitter le programme. Les différentes fonctions sont reliées aux méthodes de la classe DVDManager. Voici le code du menu interactif :
from Dvd_manager import DVDManager
from Dvd import DVD
manager = DVDManager()
def afficher_liste():
manager.lister_dvd()
print("")
def ajouter_dvd():
print("")
titre = input("Titre : ")
annee = input("Annee : ")
realisateur = input("Realisateur : ")
dvd = DVD(titre,realisateur,annee)
manager.ajouter_dvd(dvd)
def supprimer_dvd():
id = input("ID du DVD à supprimer ? ")
manager.supprimer_dvd(id)
while True:
print("Gestion des DVD")
print("1. Afficher la liste des DVD")
print("2. Ajouter un DVD")
print("3. Supprimer un DVD")
print("4. Quitter")
print("")
reponse = input("Votre choix ? ")
print("")
if reponse== "1":
afficher_liste()
elif reponse=="2":
ajouter_dvd()
elif reponse=="3":
supprimer_dvd()
pass
elif reponse=="4":
manager.fermer_connexion
break
else:
print("Reponse invalide. Veuillez réessayer.")
Ce programme en boucle continue affiche le menu principal à l’utilisateur, capture ses choix et appelle la méthode correspondante. Lorsqu’il choisit de quitter, la connexion à la base de données est fermée.
En exécutant ce code, le programme utilise un dictionnaire Python pour mapper les choix du menu aux actions correspondantes, ce qui rend la logique plus claire et facile à maintenir. Le programme affiche un menu interactif permettant à l’utilisateur de choisir une action. Chaque choix mène à l’exécution de la fonction correspondante, que ce soit pour afficher la liste des DVD, ajouter un nouveau DVD, ou supprimer un DVD existant. Lorsque l’utilisateur choisit de quitter, la connexion à la base de données est fermée. Voici un exemple d’exécution complet :
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui. Découvrez des cours variés pour tous les niveaux !
conclusion
Cet exercice en Python vous a permis de développer une application complète de gestion de DVD en utilisant SQLite. Vous avez appris à créer des classes pour structurer le programme, à manipuler une base de données pour stocker des informations, et à concevoir un menu interactif pour faciliter l’interaction utilisateur.
Ce projet pratique renforce vos compétences en programmation orientée objet et en gestion de données. En continuant avec des exercices similaires, vous pouvez consolider vos connaissances et être prêt à aborder des projets plus complexes en Python.