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
StudentdePistusResa: 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.
👉👉 Si l’extension Jupyter Notebook ne fonctionne pas dans votre installation de Visual Studio Code, vous pouvez accéder au notebook en ligne sur Google Colab. Une fois le notebook ouvert, n’oubliez pas d’en enregistrer une copie dans votre Google Drive (Fichier → Enregistrer une copie dans Drive) afin de pouvoir le modifier. 👈👈
⏰ 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.
👉 Si vous n'avez pas eu le temps de terminer le dernier TD, vous pouvez télécharger la base de données Pistus ; la base de données ne contient que des tables vides.
👉👉 Si l’extension Jupyter Notebook ne fonctionne pas dans votre installation de Visual Studio Code, vous pouvez accéder au notebook en ligne sur Google Colab. Une fois le notebook ouvert, n’oubliez pas d’en enregistrer une copie dans votre Google Drive (Fichier → Enregistrer une copie dans Drive) afin de pouvoir le modifier. 👈👈
⏰ 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
PistusResaet importez-le dans Visual Studio Code. - Copiez le fichier de base de données
pistus.dbdans 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.pyen 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.

