Le routage, c'est le GPS de ton application.
C'est ce qui dit à Flask : "Quand l'utilisateur demande /contact, montre-lui la page de contact."
La base
On l'a vu dans le "Hello World", on utilise le décorateur @app.route().
@app.route('/')
def index():
return 'Page d\'accueil'
@app.route('/hello')
def hello():
return 'Bonjour tout le monde !'
Si tu vas sur http://localhost:5000/hello, tu verras "Bonjour tout le monde !". Simple.
Les Méthodes HTTP (GET, POST...)
Par défaut, une route ne répond qu'aux requêtes GET (celles que fait ton navigateur quand tu tapes une URL). Mais parfois, tu veux envoyer des données (un formulaire d'inscription, par exemple). C'est là qu'intervient POST.
Pour autoriser plusieurs méthodes, on utilise l'argument methods :
from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return "Tu essaies de te connecter (POST)"
else:
return "Affiche le formulaire de connexion (GET)"
- GET : Récupérer de l'information (ex: afficher une page).
- POST : Envoyer de l'information (ex: soumettre un formulaire).
- PUT/DELETE : Moins fréquents pour des pages web classiques, mais très utilisés pour les API (on verra ça plus tard).
Attention aux slashes /
Flask a une règle stricte (mais intelligente) sur les slashes à la fin des URL.
Avec slash final :
@app.route('/projets/') def projets(): return 'La liste des projets'Si tu accèdes à
/projets(sans slash), Flask te redirige automatiquement vers/projets/. C'est comme un dossier.Sans slash final :
@app.route('/a-propos') def about(): return 'À propos de nous'Si tu accèdes à
/a-propos/(avec slash), Flask te renvoie une 404 Not Found. C'est comme un fichier.
Conseil : Pour les listes d'éléments, mets un slash. Pour les éléments uniques, n'en mets pas. Mais l'important, c'est d'être cohérent.