Pour créer un formulaire, on utilise la balise HTML <form>
Au sein de de cette balise on peut mettre plein de champs différents pour toutes les informations que l’on souhaite récupérer, mais aussi un bouton <button> qui servira à soumettre le formulaire.
On va ici voir comment utiliser les balises <form> et <button> qui sont indispensables
La balise <form> est la balise qui contient tout le formulaire. Tous les champs et les boutons doivent être à l’intérieur de cette balise.
<form formulaire –> |
method="POST"
action="ma_fonction"
Dans la fonction appelée, dans notre code python, on peut accéder à notre formulaire avec la variable request.form
La balise <button> permet d’envoyer le formulaire, c’est à dire déclencher l’action spécifiée précédemment.
Pour cela on précise que notre bouton est de type submit avec la syntaxe suivante :
type="submit"
Dans notre balise, on indique le texte que l’on veut afficher sur le bouton. Ici c’est Valider.
Dans nos formulaires on peut vouloir mettre des champs ou l’utilisateur peut saisir des valeurs. Pour cela on a deux balises HTML qui seront très utiles :
Tous les champs de formulaires présentés ci-dessous sont disponibles sur ce projet exemple avec l’utilisation de classes CSS Bulma pour avoir un meilleur rendu.
Dans nos balises input, il est important de spécifier un attribut name pour donner un nom à ce champ pour récupérer la valeur de ce champ dans notre code python avec la formulation suivante :
Les champs simples sont des champs dans lesquels on entrera une seule valeur comme du texte, un nombre, un mot de passe, une adresse mail…
Le type text est le type par défaut et permet d’entrer du texte sur une ligne.
On peut utiliser l’attribut placeholder pour donner une indication sur ce que l’utilisateur doit entrer.
Si l’on souhaite avoir un espace sur plusieurs lignes on peut utiliser la balise textarea.
Le type password permet de taper des mots de passe, ainsi le texte écrit n’apparaît pas directement, et on a des étoiles à la place.
Il existe plein de types qui vont permettre de vérifier automatiquement que le texte tapé à une certaine forme. Tous ces types sont proches et leur utilisation est similaire à celle vue précédemment. En voici quelques uns :
Il y a plein existe d’autres types plus spécifiques que tu peux découvrir ici.
Les champs multiples nous permettent de choisir entre plusieurs options. Il en existe de plusieurs types
Le type checkbox permet de cocher plein de cases différentes.
Pour ce type d’input, plusieurs checkbox peuvent avoir la même valeur dans l’attribut name. Par contre, il faut ajouter un attribut value qui donne un valeur à la case.
On récupère alors une liste contenant toutes les valeurs des cases cochées. Pour cela on utilise la formulation suivante:
request.form.getlist('nom_de_mes_checkbox")
Le type radio permet de choisir une seule option parmi plusieurs contrairement au checkbox qui permet d’en sélectionner plusieurs.
Comme pour les checkbox, l’attribut name est le même pour les différentes cases, mais elles doivent avoir un attribut value différent
Remarque : contrairement au checkbox, on a une seule valeur retournée, on utilise donc la syntaxe habituelle pour récupérer le résultat: