Quand un utilisateur visite ton site, il envoie plein d'infos : son navigateur, son IP, des données de formulaire, des paramètres d'URL...
Comment on récupère tout ça ? Avec l'objet global request.
Il faut d'abord l'importer :
from flask import request
Note : Même si ça ressemble à une variable globale, Flask se débrouille pour qu'elle soit unique à chaque requête (thread-local). Magique.
1. Les paramètres d'URL (?key=value)
C'est ce qu'on trouve après le ? dans l'URL. Ex : /search?q=flask&page=2.
@app.route('/search')
def search():
query = request.args.get('q') # Récupère 'flask'
page = request.args.get('page', 1) # Récupère '2', ou 1 par défaut
return f"Recherche : {query}, Page : {page}"
Toujours utiliser .get() pour éviter les erreurs si le paramètre n'existe pas.
2. Les données de Formulaire (POST)
Quand un utilisateur remplit un formulaire classique.
@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')
# ... vérification ...
3. Le JSON (API)
Quand une application JS (React, Vue...) t'envoie des données.
@app.route('/api/users', methods=['POST'])
def create_user():
data = request.get_json() # Transforme le JSON reçu en dictionnaire Python
name = data['name']
return f"Utilisateur {name} créé", 201
4. Les Cookies et Headers
@app.route('/infos')
def infos():
user_agent = request.headers.get('User-Agent') # Quel navigateur ?
mon_cookie = request.cookies.get('session_id')
return f"Navigateur : {user_agent}"
C'est l'essence de Flask : request contient TOUT ce que le client t'a envoyé.