FAQ
Questions fréquemment posées
Cette page regroupe les questions les plus fréquemment posées par les étudiants au sujet du cours LINFO1002.
Astuce
Vous êtes toujours perdu? Contactez le tuteur !
Installation et Configuration
Q: Je n'arrive pas à installer Flask, que faire ?
R: Assurez-vous d'abord d'avoir Python 3.8 ou supérieur installé. Ensuite, créez un environnement virtuel et installez Flask dedans :
python3 -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
pip install flask
Q: La commande ``flask run`` ne fonctionne pas
R: Vérifiez que :
Vous avez bien activé votre environnement virtuel
Flask est installé (
pip list | grep -i flask)Vous avez spécifié votre application avec
--app:flask --app mon_app runLe nom de votre fichier Python est correct
Q: Mon serveur Flask ne se lance pas sur le port 5000
R: Le port 5000 est peut-être déjà utilisé. Essayez :
flask --app mon_app run --port 5001
Flask et développement web
Q: Quelle est la différence entre une page statique et une page dynamique ?
R: Une page statique est toujours la même pour tous les utilisateurs (fichiers HTML/CSS/JS purs). Une page dynamique est générée côté serveur et peut varier selon l'utilisateur, l'heure, les données en base, etc.
Q: À quoi servent les décorateurs Flask comme ``@app.route()`` ?
R: Les décorateurs permettent d'associer une URL (route) à une fonction Python. Quand un utilisateur accède à cette URL, Flask exécute la fonction correspondante.
Q: Pourquoi mes modifications ne s'affichent pas dans le navigateur ?
R: Plusieurs raisons possibles :
Le navigateur a mis la page en cache : rechargez avec Ctrl+Shift+R (Cmd+Shift+R sur Mac)
Vous devez redémarrer le serveur Flask
Activez le mode debug :
flask --app mon_app run --debug
Q: Comment passer des variables à mes templates ?
R: Utilisez la fonction render_template() avec des arguments nommés :
from flask import render_template
@app.route('/user/<name>')
def user(name):
return render_template('user.html', username=name)
Templates et Jinja2
Q: Quelle est la différence entre ``{{ }}`` et ``{% %}`` dans les templates ?
R:
{{ variable }}: affiche le contenu d'une variable{% instruction %}: exécute une instruction (boucle, condition, etc.)
Q: Mes fichiers CSS/JS ne se chargent pas
R: Vérifiez que :
Vos fichiers statiques sont dans le dossier
static/Vous utilisez
url_for('static', filename='...')pour les référencerLe chemin du fichier est correct (ex:
static/css/style.css)
Q: Comment faire une boucle dans un template ?
R: Utilisez la syntaxe Jinja2 :
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
Git et versionnement
Q: J'ai fait un commit par erreur, comment l'annuler ?
R: Pour annuler le dernier commit (mais garder les modifications) :
git reset --soft HEAD~1
Pour annuler complètement le dernier commit et les modifications :
git reset --hard HEAD~1
Q: Comment résoudre un conflit Git ?
R:
Ouvrez les fichiers en conflit (marqués avec
<<<<<<<,=======,>>>>>>>)Choisissez quelle version garder ou fusionnez-les manuellement
Supprimez les marqueurs de conflit
git addles fichiers résolusgit commitpour finaliser la fusion
Consultez le Tutoriel Git pour des exercices pratiques et guidés.
Q: Je ne veux pas versionner certains fichiers (comme ``__pycache__`` ou ``venv/``)
R: Créez ou modifiez le fichier .gitignore à la racine de votre projet :
__pycache__/
*.pyc
venv/
instance/
.DS_Store
Mise en ligne
Q: Le pipeline d'intégration continue (CI) échoue, que faire ? R: Consultez d'abord la section dédiée aux pipelines CI dans le Gestion des erreurs de déploiement. Si le problème persiste, annulez le dernier commit et refaites des commits plus petits pour identifier la source du problème :
git reset --soft HEAD~1
# Puis refaites vos modifications en plusieurs petits commits jusqu'à trouver quelle modification a causé l'échec du pipeline.
Q: Le site est déployé mais après une page donnée il ne fonctionne plus / j'ai une erreur 500, que faire ? R: Consultez les logs (voir Gestion des erreurs de crash du site)
Bases de données
Q: SQLite vs PostgreSQL vs MySQL, lequel choisir ?
R: Pour ce cours et le développement local, SQLite est parfait (pas de serveur à installer). Pour la production, PostgreSQL ou MySQL sont recommandés.
Q: Où est stockée ma base de données SQLite ?
R: Par défaut dans le dossier instance/ de votre application Flask. Le fichier a généralement l'extension .db ou .sqlite.
Q: Comment visualiser le contenu de ma base SQLite ?
R: Plusieurs options :
En ligne de commande :
sqlite3 instance/database.dbDB Browser for SQLite (interface graphique gratuite)
Extension VS Code : "SQLite Viewer"
Q: Mes modifications de la base de données ne persistent pas
R: Vérifiez que vous faites bien un commit() après vos modifications :
db.commit()
Débogage
Q: J'ai une erreur 404 (Not Found)
R:
Vérifiez que la route existe dans votre code Flask
Vérifiez l'URL dans la barre d'adresse
Vérifiez que le serveur Flask est bien lancé
Q: J'ai une erreur 500 (Internal Server Error)
R: C'est une erreur dans votre code Python. Vérifiez :
Les logs du serveur Flask dans le terminal
Activez le mode debug :
flask --app mon_app run --debuget regardez si un message d'appareur apparaît au moment où vous accédez à la pageVérifiez la syntaxe de votre code
Q: Comment déboguer mon application Flask ?
R: Plusieurs techniques :
Utilisez
print()pour afficher des valeurs dans le terminalActivez le mode debug Flask
Utilisez le débogueur Python de VS Code
Consultez les logs dans le terminal où tourne Flask
Q: ``NameError: name 'X' is not defined``
R: Vous avez oublié d'importer un module ou de définir une variable. Vérifiez vos imports en haut du fichier.
Projet et rendu
Q: Quel format de rendu est attendu ?
R: Suivez les instructions spécifiques de chaque projet dans les chapitres correspondants.
Q: J'ai pris du retard, que faire ?
R:
Contactez votre assistant ou tuteur au plus vite
Rattrapez votre retard, refaite la phase 0 si vous ne maitrisez pas l'HTML, et le tuto Flask Chapitre 7 : Travaux Pratiques #3 : Un site Flask sans base de données.
Demandez de l'aide pendant les séances de TP
Consultez les ressources du cours et cette FAQ
Q: Où puis-je trouver de l'aide supplémentaire ?
R:
Les séances de TP avec les assistants
Le forum du cours sur Moodle
La documentation officielle de Flask : https://flask.palletsprojects.com/
La documentation HTML : https://www.w3schools.com/html/
La documentation CSS : https://www.w3schools.com/css/
La documentation JavaScript : https://www.w3schools.com/js/
Cette FAQ
Vos camarades de classe
Bonnes pratiques
Q: Comment organiser mon code Flask ?
R: Suivez l'architecture MVC (Modèle-Vue-Contrôleur) :
Modèles : définitions des données (classes Python, schémas de base)
Vues : templates HTML dans le dossier
templates/Contrôleurs : fonctions Flask avec les routes (logique métier)
Q: Dois-je commiter souvent sur Git ?
R: Oui ! Faites des commits :
Régulièrement (plusieurs fois par session de travail)
Avec des messages clairs et descriptifs
Pour chaque fonctionnalité complète ou correction de bug
Avant de faire des modifications importantes
Q: Comment écrire de bons messages de commit ?
R: Un bon message de commit :
Est écrit à l'impératif ("Ajoute", "Corrige", pas "Ajouté" ou "Ajout de")
Est concis mais descriptif
Commence par une majuscule
Exemples : "Ajoute la page de connexion", "Corrige le bug de l'affichage des dates"
Q: Faut-il commenter mon code ?
R: Oui, mais intelligemment :
Commentez le "pourquoi", pas le "quoi" (le code montre ce qu'il fait)
Documentez les fonctions complexes
Expliquez les choix techniques non évidents
Utilisez des noms de variables et fonctions explicites
Syllabus
Q: J'ai trouvé une erreur dans le Syllabus, que faire ?
R: Signalez-la à votre assistant ou tuteur. Ils pourront la transmettre au responsable du cours pour correction. Merci de votre aide !
Problèmes spécifiques à Windows
Cette section est gardée pour référence, car vous ne pouvez pas utilisez Windows directement dans ce cours. Vous devez utiliser WSL, comme discuté au précédent TP. Nous gardons cette F.A.Q. comme référence pour des étudiants qui voudraient essayer en dehors du cours, et pour décourager les étudiants d'essayer de faire ce cours dans Windows directement.
Q: 'python' n'est pas reconnu en tant que commande interne
R: Si vous n'avez pas coché "Add Python 3.* to PATH" lors de l'installation, alors vous ne pourrez pas taper "python" dans votre ligne de commande, car le système ne saura pas où trouver python.
D'abord, remarquez qu'il est utile de lire les consignes correctement, puisque c'est indiqué visuellement dans le tutorial d'installation python qui vous est proposé.
Pour confirmer le problème, essayez de lancer directement python.exe en trouvant le chemin complet. Il est en général installé dans %LOCALAPPDATA%\Programs\Python\.
Naviguez vers ce dossier en le tapant dans la barre d'adresse de l'explorateur Windows,
puis trouvez le nom du dossier qui dépend de la version de Python, par exemple Python311. Le chemin complet dans ce cas sera %LOCALAPPDATA%\Programs\Python\Python311\python.exe.
Essayez de lancer python en ligne de commande en utilisant ce chemin complet:
$ %LOCALAPPDATA%\Programs\Python\Python311\python.exe --version
Si cela fonctionne, le problème est bien la variable d'environnement et continuez. Sinon demandez de l'aide à votre assistant.
Pour ajouter la variable d'environnement:
Appuyer sur la touche Windows + R
Taper "sysdm.cpl" et cliquer sur OK
Aller dans "Paramètres système avancés"
Cliquer sur "Variables d'environnement"
Trouver "Path" ou "PATH" dans la liste des variables utilisateur et sélectionner la ligne
Faites "nouveau" et ajoutez le chemin trouvé ci-dessus sans la partie "python.exe", c'est-à-dire seulement le chemin vers le dossier qui le contient
Une version visuelle (en anglais) de ce processus est disponible ici : https://www.geeksforgeeks.org/python/how-to-add-python-to-windows-path/
Q: Flask est introuvable
R: Il est possible que sur Windows la commande "flask" soit introuvable. Dans ce cas, utilisez python -m flask à la place.
Il arrive également qu'une version embarquée de python, par exemple avec Inkscape crée des conflits.
Dans ce cas, utilisez le chemin complet vers python, quelque chose comme C:\Users\tom\AppData\Local\Programs\Python\Python311\python.exe -m flask --version, ou changez l'ordre des variables d'environnement comme indiqué ci-dessus.
Ressources supplémentaires
Documentation Flask : https://flask.palletsprojects.com/
Documentation Jinja2 : https://jinja.palletsprojects.com/
Git - Guide simple : https://rogerdudler.github.io/git-guide/
W3Schools HTML/CSS : https://www.w3schools.com/
MDN Web Docs : https://developer.mozilla.org/
Note
Cette FAQ est régulièrement mise à jour. Si votre question n'y figure pas, n'hésitez pas à la poser à votre assistant ou tuteur !