0Pricing
Python Academy · Leçon

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.args pour les chaînes de requête, request.form pour les champs de formulaire
  • request.get_json() pour les corps JSON, request.files pour 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

  1. Routes et vues
  2. Modèles avec Jinja2
  3. Formulaires et données des requêtes
  4. Construire un point d’accès REST
← Retour à Python Academy