17.5 Vues dans Django : Travailler avec des formulaires
Les vues dans Django sont une partie essentielle du développement d'applications Web avec le framework Django. Ils sont responsables du traitement des requêtes HTTP et de la fourniture de réponses HTTP. L'une des fonctions les plus courantes des vues consiste à travailler avec des formulaires.
Les formulaires constituent un élément fondamental des applications Web. Ils permettent aux utilisateurs d'interagir avec l'application en envoyant des données pouvant être traitées par le serveur. Dans Django, travailler avec des formulaires se fait principalement via des vues.
Créer des formulaires avec Django
Django fournit une abstraction puissante pour travailler avec des formulaires : la classe Form. Cette classe vous permet de définir les champs du formulaire, leurs validations et comment ils doivent être rendus.
Pour créer un formulaire avec Django, vous devez sous-classer Form et définir les champs que vous souhaitez sur le formulaire. Chaque champ est une instance d'une classe Field, qui définit le type de données du champ et comment il doit être validé et restitué.
Exemple de formulaire
à partir des formulaires d'importation Django
classe ContactForm(forms.Form):
nom = form.CharField(max_length=100)
email = formulaires.EmailField()
message = form.CharField(widget=forms.Textarea)
Travailler avec des formulaires dans des vues
Une fois que vous avez défini un formulaire, vous pouvez l'utiliser dans une vue pour traiter les requêtes HTTP. La vue doit vérifier si la requête est un POST ou un GET. S'il s'agit d'un POST, la vue doit créer une instance du formulaire avec les données POST, valider le formulaire et, s'il est valide, traiter les données. S'il s'agit d'un GET, la vue doit créer une instance vide du formulaire et la restituer.
Exemple de vue avec formulaire
à partir du rendu d'importation de Django.shortcuts
à partir de .forms importer ContactForm
contact par définition (demande):
si request.method == 'POST' :
formulaire = ContactForm(request.POST)
si form.is_valid() :
# traiter les données
passer
autre:
formulaire = ContactForm()
return render(requête, 'contact.html', {'form': form})
Formulaires de rendu
Django propose plusieurs façons de restituer des formulaires. Vous pouvez afficher le formulaire dans son ensemble, afficher des champs individuels ou afficher manuellement le formulaire. Le rendu du formulaire est effectué dans le modèle, pas dans la vue.
Exemple de rendu de formulaire
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="soumettre" value="Soumettre">
</formulaire>
Travailler avec des formulaires dans Django peut sembler complexe à première vue, mais une fois que vous aurez compris le flux de travail, vous constaterez que Django fournit un moyen très puissant et flexible de gérer les formulaires.
Conclusion
Les vues dans Django jouent un rôle crucial dans la gestion des formulaires. Ils vous permettent de traiter les données du formulaire, de les valider et de renvoyer les réponses appropriées à l'utilisateur. Avec de la pratique, vous deviendrez plus à l'aise avec les formulaires et les vues dans Django.