Avec Flask-WTF, un formulaire est une classe Python. Ça permet de tout centraliser.
Crée un fichier forms.py (c'est plus propre que de tout mettre dans app.py).
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Email, Length
class LoginForm(FlaskForm):
email = StringField('Email', validators=[
DataRequired(message="L'email est obligatoire"),
Email(message="Ceci n'est pas un email valide")
])
password = PasswordField('Mot de passe', validators=[
DataRequired(),
Length(min=6, message="Au moins 6 caractères !")
])
submit = SubmitField('Se connecter')
Décortiquons :
- Héritage : On hérite de
FlaskForm. - Champs : On utilise des classes comme
StringField(texte),PasswordField(mot de passe),BooleanField(case à cocher), etc.- Le premier argument est le Label (ce qui sera écrit devant le champ).
- Validateurs : Une liste de règles.
DataRequired: Le champ ne doit pas être vide.Email: Vérifie le format (a@b.c).Length: Vérifie la taille.
C'est propre, lisible, et réutilisable.