Activités de ce laboratoire :
- Apprendre à manipuler des données semi-structurées avec
Pandas
. - Apprendre ce que sont les processus ETL.
- Module ETL de
PistusResa
: nettoyer et importer des données dans une base de données relationnelle. - Module
Student
dePistusResa
: lecture de données à partir d'une base de données relationnelle à l'aide de code Python.
Introduction à Pandas
Les données utilisées dans PistusResa
sont stockées dans deux fichiers CSV.
Nous utiliserons Pandas
pour lire les données des fichiers CSV, les nettoyer et les charger dans la base de données Pistus.
L'objectif de cette section est d'apprendre à utiliser Pandas
.
Téléchargez ce notebook et importez-le dans Visual Studio Code. Lisez le notebook et faites les exercices avant de passer à la section suivante.
⏰ Temps à consacrer à cette partie : 1h30.
Le module ETL de PistusResa
L'objectif de cette section est d'extraire les données des fichiers CSV, de les transformer et de les charger dans la base de données Pistus.
Téléchargez ce notebook et importez-le dans Visual Studio Code. Lisez le notebook et faites les exercices avant de passer à la section suivante.
⏰ Temps à consacrer à cette partie : 30 minutes.
Mise en œuvre de PistusResa
Vous êtes maintenant prêt à travailler sur l'implémentation de PistusResa.
- Téléchargez le squelette de l'application
PistusResa
et importez-le dans Visual Studio Code. - Copiez le fichier de base de données
pistus.db
dans le dossierdata
.
⏰ Temps à consacrer à cette partie : 1h.
Le module Student
Le module Student
contient les fonctions nécessaires pour ajouter et modifier les informations relatives aux étudiants dans la base de données.
Le code du module Student
se trouve dans le fichier mstudent.py
.
Dans le fichier mstudent.py
, les fonctions suivantes sont définies mais non implémentées.
get_student
, renvoie les données d'un étudiant stockées dans la base de données.get_associations
, renvoie toutes les associations stockées dans la base de données.get_roles
, renvoie les rôles des étudiants dans une association.get_memberships
, renvoie les associations d'un étudiant donné.add_email_address
, ajoute une adresse électronique à un étudiant.add_student
, ajoute un étudiant à la base de données.add_membership
, ajoute un étudiant à une association dans la base de données.delete_email_address
, supprime l'adresse électronique d'un étudiant.delete_membership
, supprime l'appartenance d'un étudiant à une association.update_first_name
, met à jour le prénom de l'étudiant.update_last_name
, met à jour le nom de famille d'un étudiant.update_gender
, met à jour le sexe d'un étudiant.update_email_address
, met à jour l'adresse électronique d'un étudiant.update_membership
, met à jour l'appartenance d'un étudiant à une association.
Dans le fichier mstudent_test.py
nous avons défini et implémenté une fonction de test pour chacune des fonctions ci-dessus.
Ces fonctions de test sont appelées dans la section principale du fichier mstudent.py
: voir le code après la ligne 487.
Voici ce que vous devez faire :
- Ouvrez le fichier
mstudent.py
. - Implémentez les fonctions dans l'ordre dans lequel elles sont définies : l'ordre est important car les tests en dépendent.
- Chaque fonction est commentée dans le fichier
mstudent.py
. Lisez attentivement tous les commentaires pour comprendre comment implémenter chaque fonction. - Vous devrez utiliser des requêtes SQL dans chaque fonction. Un aide-mémoire SQL est à votre disposition.
- Chaque fois que vous terminez l'implémentation d'une fonction, exécutez le fichier
mstudent.py
en tant que script Python. Cela déclenchera l'exécution des tests. - Si un test échoue, vous devrez comprendre les messages d'erreur et résoudre le problème.
N'oubliez pas de supprimer l'instruction raise NotImplementedError
lorsque vous implémentez une fonction. Sinon, votre fonction sera toujours considérée comme non implémentée.
👉 Le module Registration
(fichier mregistration.py
) est déjà implémenté. Examinez le code pour comprendre comment le module Student
doit être implémenté.
Prochain TD
Dans le prochain TD, nous allons :
- coder une fênetre de connexion pour
PistusResa
. - coder les modules d'authentification et de gestion des échéances de paiement (si le temps le permettra).
👉 Si vous avez atteint la fin de ce TD, et qu'il vous reste du temps, vous pouvez commencer le prochain TD.