Outils pour utilisateurs

Outils du site


python:flask:formulaires

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:flask:formulaires [2023/11/02 07:04]
marclebrun
python:flask:formulaires [2023/11/10 07:16] (Version actuelle)
marclebrun [Traitement]
Ligne 4: Ligne 4:
  
 Définition du formulaire dans une classe. Définition du formulaire dans une classe.
- 
-:!: **Note:** Ne pas appeler les boutons "​**submit**"​ et "​**cancel**"​ car sinon 
-la fonction **submit()** du formulaire n'est plus disponible en javascript. 
-J'ai pris l'​habitude d'​appeler mes boutons "​**btnSubmit**"​ et "​**btnCancel**"​. 
  
 <code python> <code python>
Ligne 21: Ligne 17:
         ('​f',​ u"​Féminin"​),​         ('​f',​ u"​Féminin"​),​
     ])     ])
-    actif     ​= BooleanField(u"​Actif"​) +    actif  = BooleanField(u"​Actif"​) 
-    ​btnSubmit ​= SubmitField(u"​Enregistrer") +    ​submit ​= SubmitField(u"​Enregistrer"​)
-    btnCancel = SubmitField(u"​Annuler")+
 </​code>​ </​code>​
  
Ligne 33: Ligne 28:
 <form action=""​ method="​post">​ <form action=""​ method="​post">​
     {{ form.hidden_tag() }}     {{ form.hidden_tag() }}
 +    ​
     <div class="​form-group">​     <div class="​form-group">​
         {{ form.nom.label(class="​form-label"​) }}         {{ form.nom.label(class="​form-label"​) }}
         {{ form.nom(class="​form-input"​) }}         {{ form.nom(class="​form-input"​) }}
     </​div>​     </​div>​
 +    ​
     <div class="​form-group">​     <div class="​form-group">​
         {{ form.prenom.label(class="​form-label"​) }}         {{ form.prenom.label(class="​form-label"​) }}
         {{ form.prenom(class="​form-input"​) }}         {{ form.prenom(class="​form-input"​) }}
     </​div>​     </​div>​
 +    ​
     <div class="​form-group">​     <div class="​form-group">​
         {{ form.genre.label(class="​form-label"​) }}         {{ form.genre.label(class="​form-label"​) }}
-        {{ form.genre(class="​form-input") }}+        {{ form.genre(class="​form-select") }} 
 +    </​div>​ 
 +     
 +    <​div>​ 
 +        {{ form.submit(class="​btn btn-primary"​) }} 
 +        <a class="​btn btn-secondary"​ href="​javascript:​history.back()">​Annuler</​a>​
     </​div>​     </​div>​
-    {{ form.btnSubmit(class="​btn btn-primary"​) }} 
-    {{ form.btnCancel(class="​btn btn-secondary"​) }} 
 </​form>​ </​form>​
 </​code>​ </​code>​
Ligne 73: Ligne 74:
         form = PersonneEditForm()         form = PersonneEditForm()
         ​         ​
-        # si le formulaire a été soumis +        # si le formulaire a été soumis ​et validé 
-        if form.is_submitted():+        if form.validate_on_submit():
         ​         ​
-            ​# si on a validé avec le bouton "​Annuler"​ +            # enregistrer l'​objet 
-            if form.btnCancel.data:​ +            personne.nom ​   = form.nom.data 
-                return redirect(url_for('​personnes.index'​)) +            personne.prenom = form.prenom.data 
-             +            personne.genre ​ = form.genre.data 
-            # si on a validé avec le bouton "​Enregistrer"​ +            if id == 0: 
-            if form.btnSubmit.data:​ +                # si 0 on est dans l'​ajout d'un nouvel objet 
-                # si tous les champs du formulaire sont valides +                db.session.add(personne) 
-                if form.validate():​ +            # valider l'​enregistrement dans la db 
-                    ​# enregistrer l'​objet +            db.session.commit()
-                    personne.nom ​   = form.nom.data +
-                    personne.prenom = form.prenom.data +
-                    personne.genre ​ = form.genre.data +
-                    if id == 0: +
-                        # si 0 on est dans l'​ajout d'un nouvel objet +
-                        db.session.add(personne) +
-                    # valider l'​enregistrement dans la db +
-                    db.session.commit()+
                     ​                     ​
-                    ​# rediriger vers l'​index +            ​# rediriger vers l'​index 
-                    return redirect(url_for('​personnes.index'​))+            return redirect(url_for('​personnes.index'​))
         ​         ​
         # sinon il faut le remplir et l'​afficher         # sinon il faut le remplir et l'​afficher
python/flask/formulaires.1698908663.txt.gz · Dernière modification: 2023/11/02 07:04 par marclebrun