Dans le chapitre 17 de notre cours sur la création de systèmes avec Python et Django, nous aborderons un composant crucial de Django : les vues. Les vues sont chargées de traiter les demandes des utilisateurs et de renvoyer une réponse. En d'autres termes, ils constituent le pont entre les modèles et les modèles.
Les vues dans Django sont des fonctions Python qui prennent une requête Web et renvoient une réponse. Cette réponse peut être du HTML provenant d'une page Web, une redirection, une erreur 404, du XML, une image ou toute autre chose. La vue elle-même ne contient aucune information sur ce qui doit être envoyé à l'utilisateur. Pour cela, il s'appuie sur des modèles et des gabarits.
Il existe deux types de vues dans Django : basées sur les fonctions (FBV) et basées sur les classes (CBV). Les FBV sont simples et faciles à utiliser, surtout pour les débutants. Cependant, pour les projets plus importants et plus complexes, les CBV constituent généralement un meilleur choix car ils offrent plus de flexibilité et de fonctionnalités.
Les FBV sont définis comme des fonctions Python normales, qui prennent un objet de requête comme paramètre et renvoient un objet de réponse. Par exemple :
Les CBV, quant à eux, sont définis comme des classes Python. Ils sont plus puissants et flexibles que les FBV, car ils peuvent tirer parti de l'orientation objet de Python et de DRY (Don't Repeat Yourself). Les CBV fournissent également une structure cohérente pour vos vues, rendant votre code plus facile à lire et à maintenir. Par exemple :
Pour utiliser une vue, vous devez la mapper à une URL. Cela se fait dans un fichier appelé urls.py. Chaque application Django peut avoir son propre fichier urls.py, et le projet Django principal en possède également un. Les URL sont mappées aux vues à l'aide d'expressions régulières ou de simples itinéraires de chaînes.
Par exemple, pour mapper l'URL /my_view à la vue my_view, vous devez ajouter ce qui suit à votre fichier urls.py :
Les vues peuvent également traiter les données utilisateur. Par exemple, si vous souhaitez traiter les données d'un formulaire, vous pouvez le faire dans une vue. La vue récupère les données du formulaire, les valide, puis enregistre les données dans une base de données ou effectue d'autres actions.
Par exemple, voici une vue qui affiche un formulaire de contact :
En bref, les vues sont une partie essentielle de Django. Ils traitent les demandes des utilisateurs, travaillent avec des modèles pour obtenir et enregistrer des données et utilisent des modèles pour créer la réponse qui sera envoyée à l'utilisateur. La maîtrise des vues est une étape cruciale pour devenir un développeur Django efficace.