Formulaires et données des requêtes
Traiter les données saisies par l’utilisateur
Formulaires et données des requêtes est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
L’objet request
Flask donne à chaque vue accès à un objet global request contenant toutes les données reçues : champs de formulaire, chaînes de requête, JSON, en-têtes, etc.
from flask import Flask, request
app = Flask(__name__)
# request is available inside any view
print('request carries the incoming data')Paramètres de chaîne de requête
Les données qui suivent ? dans l’URL se trouvent dans request.args. Utilisez .get() pour lire une valeur en toute sécurité.
from flask import Flask, request
app = Flask(__name__)
@app.route('/search')
def search():
term = request.args.get('q', '')
return 'Searching for ' + term
print('/search?q=cats -> request.args')Un formulaire HTML
Un formulaire envoie des données lorsqu’il est soumis. Les attributs de méthode et d’action déterminent comment et où les envoyer.
# <form method='POST' action='/login'>
# <input name='username'>
# <input name='password' type='password'>
# <button>Submit</button>
# </form>
print('Form posts username and password')Lire les données d’un formulaire
Les champs du formulaire soumis arrivent dans request.form. Accédez-y à l’aide de l’attribut de nom du champ de saisie.
from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
user = request.form['username']
return 'Welcome ' + user
print('request.form holds posted fields')Accès sécurisé avec get
L’utilisation de request.form['x'] lève une exception si la clé est absente. Préférez request.form.get('x'), qui renvoie None à la place.
from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
user = request.form.get('username')
if not user:
return 'Missing username', 400
return 'Welcome ' + user
print('.get avoids KeyError')GET et POST dans une seule vue
Un schéma courant consiste à afficher le formulaire avec GET et à traiter les données avec POST, le tout dans une seule vue.
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/contact', methods=['GET', 'POST'])
def contact():
if request.method == 'POST':
return 'Thanks, ' + request.form.get('name', 'friend')
return render_template('contact.html')
print('One view, two methods')Valider les données saisies
Ne faites jamais confiance aux données saisies par l’utilisateur. Vérifiez que les champs obligatoires existent et contiennent des valeurs cohérentes avant de les utiliser.
from flask import Flask, request
app = Flask(__name__)
@app.route('/age', methods=['POST'])
def age():
raw = request.form.get('age', '')
if not raw.isdigit():
return 'Age must be a number', 400
return 'Age is ' + raw
print('Validate before trusting input')Lire du JSON
Les clients d’API envoient souvent du JSON. request.get_json() analyse le corps et le convertit en dictionnaire Python.
from flask import Flask, request
app = Flask(__name__)
@app.route('/api', methods=['POST'])
def api():
data = request.get_json()
return 'Got name ' + data.get('name', '?')
print('get_json parses the JSON body')Téléversements de fichiers
Les fichiers téléversés se trouvent dans request.files. Enregistrez-en un avec sa méthode .save() après l’avoir validé.
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
f = request.files.get('photo')
if f:
return 'Received ' + f.filename
return 'No file', 400
print('request.files holds uploads')Rediriger après POST
Après le traitement d’un formulaire, redirigez l’utilisateur pour éviter les soumissions en double lors de l’actualisation. Utilisez redirect(url_for(...)).
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/done')
def done():
return 'All done'
@app.route('/save', methods=['POST'])
def save():
return redirect(url_for('done'))
print('Post/Redirect/Get pattern')Messages flash
flash() stocke un message temporaire affiché après une redirection, ce qui est idéal pour des confirmations comme « Enregistrement réussi ».
from flask import Flask, flash, redirect, url_for
app = Flask(__name__)
app.secret_key = 'change-me'
@app.route('/save', methods=['POST'])
def save():
flash('Saved successfully')
return redirect(url_for('save'))
print('flash shows a one-time message')Vérification rapide
Vérifiez vos connaissances sur le traitement des formulaires.
Récapitulatif
Vous avez traité des données saisies par l’utilisateur dans Flask.
request.argspour les chaînes de requête,request.formpour les champs de formulairerequest.get_json()pour les corps JSON,request.filespour les téléversements- Validez toujours les données saisies et utilisez
.get()pour un accès sécurisé - Utilisez POST/Redirection/GET et
flash()pour une expérience utilisateur claire
Questions Fréquemment Posées
La leçon « Formulaires et données des requêtes » est-elle gratuite ?
Oui — le texte complet de « Formulaires et données des requêtes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Formulaires et données des requêtes » ?
Traiter les données saisies par l’utilisateur Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Formulaires et données des requêtes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Routes et vues
- Modèles avec Jinja2
- Formulaires et données des requêtes
- Construire un point d’accès REST