Outils pour utilisateurs

Outils du site


dev:python:flask:flask_formulaires_wtforms

Ceci est une ancienne révision du document !


:TODO:

Python : Gestion des formulaires via Flask-WTF

WTForms est une bibliothèque Python permettant de gérer des formulaires web via des Classes et objets en POO.

Ici on utilise le paquet Flask-WTF qui intègre la bibliothèque WTForms au micro framework Flask.

Initialiser l'application Flask

Création d'un dépôt git pour le projet et initialisation de l'application Flask :

git init hello-wtf
cd hello-wtf/
git branch -m main
 
# Création de l'environnement et installation des packages
python3 -m venv venv
source venv/bin/activate
pip install Flask Flask-WTF
 
# Création de l'application Flask
mkdir -p helloforms/{static,templates}
touch helloforms/__init__.py
chmod a+x helloforms/__init__.py

Peupler le fichier helloforms/init.py :

__init__.py
#!/usr/bin/env python
 
from flask import Flask
 
 
app = Flask(__name__)
 
 
@app.route('/')
def show_home_page():
    """Build and return home page
 
    """
    return '<h1>Hello World!!!</h1>'
 
 
 
if __name__ == '__main__':
 
    # execution en mode debug
    app.run(debug=True)

Tester l'application via la commande flask run:

FLASK_APP=helloforms FLASK_ENV=development flask run --debug

A ce stade la commande doit lancer le serveur web et afficher un message du type :

* Serving Flask app 'helloforms'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 845-679-934

Ouvrir son navigateur à l'URL http://localhost:5000 doit afficher le message “Hello World!!!”

Pour la mise en forme, on utilise le framework Spectre CSS

Création du formulaire

  • Pour créer un formulaire, on définit une classe héritant de FlaskForm.
  • Chaque attribut est un champ de formulaire héritant de la classe de base wtforms.fields.Field ;

Le constructeur de la classe de base wtforms.fields.Field accepte notamment les paramètres :

  • label : le label associé au champ ;
  • default : valeur par défaut du champ, peut être un callable ;
  • description : une description associée au champ, utilisée généralement par les help text ;
  • filters : tableau, séquence de callables (fonctions) exécutées pour traiter les données du champ ;
  • validators : tableau de validators appelés lors de l'exécution de validate.

La liste exhaustive des paramètres est disponible dans la documentation https://wtforms.readthedocs.io/en/3.2.x/fields/#basic-fields

Les champs élémentaires disponibles :

BooleanField Champ de type checkbox
 

Références

dev/python/flask/flask_formulaires_wtforms.1741442973.txt.gz · Dernière modification : 2025/03/08 14:09 de yoann