Ceci est une ancienne révision du document !
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.
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
:
#!/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
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 |
---|