Un joli formulaire python avec WTForm

Rédigé par jerome aucun commentaire


22 janvier 2014 Python aucun


On va faire beau (Bootstrap), efficace (WTForms) et rapide (Flask) ! (présupposé : Flask et WTForms sont installés et les fichiers Bootstrap (bootstrap.min.css et bootstrap-theme.min.css) sont dans le rep. "./static/dist/css") Procédons par étapes :

  1. Créer l'application Flask + Template
  2. @app.route('/', methods=['GET', 'POST'])
    def basicform():
    form = BasicForm(request.form)
    if request.method == 'POST' and form.validate():
    with open('/tmp/test.txt', 'x') as f:
    for k in request.form:
    f.write('{0}: {1}\n'.format(k, request.form[k]))

    return render_template('basicform.html', form=form)

  3. Créer un fichier pour importer les type de champs souhaités puis de faire hériter son formulaire de l'objet Form et d'y lister les différents types de données WTForm permet en outre de vérifier certaines condition de ces champs grace à des "validators"

  4. from wtforms import Form, TextField, SelectField, SubmitField, PasswordField, validators
    class BasicForm(Form):
    user = TextField(u'Utilisateur', [validators.length(min=4, max=20)])
    passwd = PasswordField(u'Mot de passe', [validators.length(min=8, max=32)])
    active = SelectField(u'Actif', choices = [('yes', 'Yes'), ('no', 'No')])
    action = SubmitField(u'Register')

  5. Importer cette classe dans le fichier initial et passage du paramètre au template

  6. rajout de from forms import BasicForm
    pour le passage de param. cf. return render_template('basic.html', form=form)

  7. Créer le template HTML (basic.html) en insérant les style Bootstrap (cf. doc bootstrap et ajout class "form-control"


Partager cet article sur :


Écrire un commentaire

Quelle est la première lettre du mot ujmu ? :