Ce fichier regroupe toutes les ressources pour vous aider pendant et après le TP. N'hésitez pas à y revenir à tout moment.
Comprendre les messages d'erreur Python Quand Python plante, il affiche un "traceback" : lisez-le de bas en haut. La dernière ligne indique le type d'erreur et le message, les lignes au-dessus montrent le chemin qui y a mené.
- Types d'erreurs Python — documentation officielle (français)
- Comprendre un traceback Python — RealPython (anglais)
Les erreurs les plus fréquentes que vous rencontrerez :
SyntaxError— le code n'est pas valide syntaxiquement (parenthèse manquante, deux-points oublié…)NameError— vous utilisez une variable ou une fonction qui n'a pas été définieFileNotFoundError— le fichier demandé n'existe pas à l'emplacement indiquéModuleNotFoundError— un paquet importé n'est pas installé
Flask est le framework Python utilisé pour créer l'API de ce TP.
Commandes utiles :
# Installer Flask
pip install flask
# Lancer une application Flask
python app.py
# Tester une route depuis le terminal
curl http://localhost:5000/api/logsNode.js permet d'exécuter du JavaScript dans le terminal. npm est son gestionnaire de paquets.
Commandes utiles :
# Vérifier la version installée
node --version
npm --version
# Installer les dépendances d'un projet (lit package.json)
npm install
# Lancer un script Node
node app.js
# Lancer via le script "start" défini dans package.json
npm startErreurs fréquentes sous Node.js :
Cannot find module 'xxx'— le paquet n'est pas installé ou son nom est incorrect dansrequire()TypeError: Cannot read properties of undefined— vous essayez d'accéder à une propriété d'une variable qui vautundefinedECONNREFUSED— le client ne peut pas se connecter au serveur (serveur non démarré ou mauvais port)
Quand Node.js appelle l'API Python, la réponse contient toujours un code HTTP (200, 404, 500…). Le guide complet avec les explications et les cas concrets de ce TP est dans CODES-HTTP.md.
Axios est la bibliothèque Node.js utilisée dans ce TP pour faire des requêtes HTTP vers l'API Python.
Structure d'une réponse Axios :
const response = await axios.get('http://localhost:5000/api/logs');
// Les données retournées par le serveur sont dans :
response.data // <- c'est ici que se trouve le JSON
response.status // <- code HTTP (200, 404, 500...)
response.headers // <- en-têtes HTTPConventions de nommage des branches
Dans ce TP, la convention est : fix/prenom-description
Exemples : fix/marie-debug-python, fix/kevin-correction-node
Messages de commit — Conventional Commits
Un bon message de commit suit ce format : type: description courte
fix:— correction d'un bugfeat:— ajout d'une nouvelle fonctionnalitédocs:— modification de documentationchore:— tâche de maintenance (mise à jour de dépendances…)
Exemples : fix: correction du port Flask dans app.py ou fix: remplacement axioss par axios
Ressources Git :
- Conventional Commits (français)
- Créer une Pull Request sur GitHub (français)
- Comprendre Git — série complète par Grafikart (vidéo français)
Ces vidéos ont été sélectionnées par votre formateur pour accompagner la formation.
Git & GitHub — bases
- Apprendre GIT en 1 heure (2025)
- Formation Git complète — Grafikart
- Débuter avec Git et GitHub en 30 min
Gitflow et DevOps
- Devenir DevOps — Git et Gitflow — Xavki
- Pipeline DevOps — Gitflow en pratique — Xavki
- Comprendre Git Flow — Grafikart
| Terme | Définition simple |
|---|---|
| API | Service web qui reçoit des requêtes et retourne des données (souvent en JSON) |
| JSON | Format de données texte, lisible par les humains et les machines |
| Framework | Boîte à outils qui facilite le développement (Flask, Express…) |
| Dépendance | Bibliothèque externe dont votre projet a besoin pour fonctionner |
| Port | Numéro qui identifie un service sur une machine (ex: port 5000 pour Flask) |
| Localhost | Désigne votre propre machine (équivalent à 127.0.0.1) |
| Log | Fichier texte enregistrant les événements d'une application |
| Pull Request | Proposition de fusion d'une branche vers une autre, avec revue de code |
| Traceback | Message d'erreur Python qui montre la chaîne d'appels ayant mené à l'erreur |