Comment créer une application CRUD avec les vues basées sur les classes de Django
L’une des principales caractéristiques de Django est sa prise en charge intégrée de la création de projets à partir d’opérations CRUD (création, lecture, mise à jour, suppression). Bien que les vues basées sur les classes de Django constituent un moyen rapide, facile et flexible de créer des applications web, de nombreux développeurs utilisent encore des vues basées sur les fonctions.
Les vues basées sur les classes offrent plusieurs avantages par rapport aux vues basées sur les fonctions, notamment l’héritage, la structuration du code, la réutilisation du code, etc. Bien que la mise en œuvre des vues basées sur les classes puisse sembler légèrement complexe, ce guide vous aidera à comprendre le concept en construisant une application de gestion des tâches et en fournissant des instructions étape par étape.
Que sont les vues basées sur les classes dans Django ?
Dans Django, les vues sont des fonctions Python qui reçoivent une requête web et renvoient une réponse web. Les vues basées sur les classes (CBV) sont une autre façon de définir des vues dans Django en utilisant des classes Python au lieu de fonctions.
Les CBV présentent plusieurs avantages, tels qu’une meilleure organisation du code, une réutilisation plus facile du code et la possibilité d’utiliser l’héritage pour créer des variations de vues existantes. Les CBV fournissent également des méthodes intégrées telles que la fonction get() et post() que vous pouvez remplacer pour des comportements personnalisés.
Le code utilisé dans cet article est disponible dans ce dépôt GitHub.
Vues basées sur les classes disponibles dans Django
Django fournit quelques CBV intégrées pour des cas d’utilisation courants, tels que l’affichage de listes d’objets ou la création de nouveaux objets. Certaines de ces CBV intégrées sont :
- ListView: Cette vue affiche une liste d’objets extraits d’un modèle. Par exemple, une page qui répertorie tous les articles disponibles dans un blog utilisera une vue de type ListView.
- Vue détaillée: Cette vue présente une vue détaillée d’un objet unique extrait d’un modèle. Vous pouvez utiliser un DetailView pour afficher les détails d’articles spécifiques dans une application de blog.
- CreateView: Cette vue affiche un formulaire de création d’un nouvel objet et gère la soumission du formulaire. Par exemple, dans une application de gestion des tâches, vous utiliserez cette vue pour créer de nouvelles tâches.
- Vue de suppression: Cette vue rend une page de confirmation pour supprimer un objet et gère la suppression de la page.
- UpdateView: Cette vue rend un formulaire de mise à jour d’un objet existant et gère la soumission du formulaire.
Django fournit également d’autres vues, notamment TemplateView, RedirectView et FormView. Vous pouvez vous référer à la documentation de Django pour obtenir des informations détaillées sur les vues basées sur les classes.
Construire une application de gestion des tâches avec les vues basées sur les classes de Django
La construction d’une application telle qu’une application de gestion de tâches vous permettra de comprendre comment mettre en œuvre des opérations CRUD avec des CBV. Un gestionnaire de tâches possède des fonctionnalités qui permettent aux utilisateurs de créer, mettre à jour, supprimer et lire des tâches. Ces fonctionnalités sont conformes aux opérations CRUD. Les étapes suivantes vous aideront à construire une application de gestionnaire de tâches avec les CBV de Django.
Mise en place d’un projet Django
Pour créer une application de gestion des tâches avec Django, vous devez commencer par suivre les étapes suivantes :
- Installez Django dans votre environnement virtuel Python à l’aide de cette commande :
- Créez un projet Django. La commande suivante créera un projet appelé projet_core.
- Créez une application appelée gestionnaire_de_tâches.
- Dans votre settings.py ajoutez le nom de votre application au champ INSTALLED_APPS à la liste des INSTALLED_APPS
- Ouvrez la liste urls.py dans le répertoire de votre projet et configurez les URL pour votre fichier gestionnaire_de_tâches app :
Créer un modèle pour votre application de gestion des tâches
Dans votre répertoire app (ou task_manager ), ouvrez votre models.py et créez un modèle pour votre application de gestion des tâches. Voici un exemple de modèle que vous pouvez utiliser :
Migrez votre modèle avec cette commande :
Créez un formulaire Django pour votre application
Vous devriez avoir un formulaire pour gérer Créez et Mise à jour opérations. Dans le répertoire de votre application, créez un fichier appelé forms.py. Voici un exemple :
Le code ci-dessus comporte une classe appelée TaskForm qui définit les champs et les widgets du formulaire. Elle spécifie également le modèle à utiliser.
Créer des vues Django pour chaque opération CRUD
Une application CRUD de base avec des CBV nécessite au moins quatre vues pour gérer efficacement toutes les opérations. Les prochaines étapes vous montreront comment les créer.
Importer les modules et paquets nécessaires
Ouvrez votre views.py et faites les importations suivantes :
Le code ci-dessus importe cinq CBV. Il importe également reverse_lazy pour rediriger l’utilisateur vers une URL spécifiée après la soumission d’un formulaire. Enfin, il importe la balise Task et le modèle TaskForm créée précédemment.
Créer une vue pour lister les objets du modèle
Une application de gestion des tâches doit avoir une page listant toutes les tâches créées par l’utilisateur. Pour créer une vue à cet effet, vous devez utiliser le modèle ListView. Voici un exemple :
La vue ci-dessus définit trois attributs qui sont :
- modèle: Cet attribut définit le modèle à utiliser pour cette vue spécifique.
- nom_du_modèle: Cet attribut indique à Django le modèle à rendre au navigateur.
- nom_de_l’objet_contexte: Cet attribut définit le nom qui permet au modèle d’accéder à la liste des objets du modèle.
La plupart des CBV contiennent ces trois attributs.
Créer une vue pour gérer les détails des tâches
Chaque tâche créée par un utilisateur doit être accompagnée d’une page présentant ses détails. La CBV idéale pour gérer cela est la suivante DetailVew. Voici un exemple simple :
Créer une vue pour la création de tâches
Créer une vue pour gérer la création ou l’ajout de nouvelles tâches. Il s’agit de la vue Créer des opérations CRUD, et la vue appropriée est la vue CreateView. Voici comment l’utiliser :
Le code ci-dessus introduit deux nouveaux attributs : form_class et success_url.
Les form_class indique à la vue la classe de formulaire à rendre et à utiliser pour ses opérations.
L’attribut success_url indique comment rediriger l’utilisateur après qu’il a envoyé le formulaire. Elle utilise la balise reverse_lazy qui prend le nom d’un chemin d’URL.
Créer une vue pour l’édition des tâches
Pour permettre à vos utilisateurs de modifier ou de mettre à jour leurs tâches, vous devez créer une vue qui ressemble à celle-ci :
La vue ci-dessus est similaire à la vue TaskCreateView créée précédemment. La seule différence est l’utilisation de l’élément UpdateView.
Créer une vue pour gérer les opérations de suppression
Pour permettre à vos utilisateurs de supprimer des tâches quand ils le souhaitent, vous devez utiliser la vue DeleteView CBV. Voici un exemple :
Configurer les URL de votre application
Dans le répertoire de votre application, créez un fichier urls.py et configurez vos modèles d’URL comme suit :
Les modèles d’URL ci-dessus sont similaires aux URL créés avec des vues basées sur des fonctions. La différence réside dans les as_view() ajoutée à la fin de chaque nom de vue.
Vous pouvez utiliser les slugs de Django pour créer des URL à la place de la clé primaire utilisée ci-dessus.
Créez des modèles pour vos vues
Permettre à vos utilisateurs d’effectuer les actions définies dans les vues ci-dessus suggère que vous leur fournissiez une interface avec laquelle ils peuvent interagir. À partir des vues créées précédemment, l’application de gestion des tâches devrait avoir quatre interfaces utilisateur.
Dans le répertoire de votre application, créez quatre modèles HTML. Vous devez également créer base.html . Vous pouvez styliser vos modèles Django avec Bootstrap pour gagner du temps.
Modèle de liste de tâches
Ce modèle doit inclure du code qui liste toutes les tâches du modèle. Voici un exemple squelettique de ce code :
Avec quelques classes Bootstrap, vous pouvez faire en sorte que votre page ressemble à ceci :
Modèle de détail des tâches
Cette page doit présenter tous les détails de chaque tâche créée. Voici un exemple de modèle que vous pouvez utiliser :
En fonction de votre approche stylistique, votre page devrait ressembler à ceci :
Modèle de formulaire de tâche
Ce modèle doit contenir un formulaire qui permet à l’utilisateur de créer ou de mettre à jour une tâche.
Le modèle se présentera comme suit :
Modèle de suppression de tâche
Ce modèle doit être une page de confirmation pour éviter la suppression accidentelle de tâches.
Avec un peu de Bootstrap, votre page devrait ressembler à ceci :
Utilisez les vues basées sur les classes pour augmenter votre productivité
Les vues basées sur les classes sont un excellent moyen d’écrire un code propre et organisé en peu de temps, augmentant ainsi votre productivité. Vous devriez les utiliser dans vos projets autant que possible. Vous pouvez également intégrer des fonctionnalités telles que la recherche, les notifications, etc. pour faire de votre application de gestion des tâches une application fonctionnelle à part entière.
Comment faire une application CRUD dans Django ?
Pour créer une application Django qui effectue des opérations CRUD, suivez les étapes suivantes.
- Créez un projet. $ django-admin startproject crudexample.
- Créez une application. $ python3 manage.py startapp employee.
- Structure du projet. ANNONCE.
- Configuration de la base de données.
- Création d’un modèle.
- Créer un modèle de formulaire.
- Créer des fonctions de vue.
- Fournir un routage.
Comment utiliser les vues basées sur les classes dans Django ?
Si nous mettons en œuvre la vue basée sur les classes, elle se présente comme suit.
- from django.http import HttpResponse.
- from django.views import View.
- class NewView(View) :
- def get(self, request) :
- # La logique de la vue sera placée ici.
- return HttpResponse(‘response’)
Qu’est-ce que le CRUD dans les vues basées sur les fonctions de Django ?
Vues CRUD (Create, Retrieve, Update, Delete) de Django basées sur des fonctions
- Créer – créer ou ajouter de nouvelles entrées dans une table de la base de données.
- Retrieve – lire, extraire, rechercher ou afficher les entrées existantes sous forme de liste (List View) ou extraire une entrée particulière en détail (Detail View).
Comment créer une application CRUD de base ?
Construire le front-end de votre application CRUD
- Architecture et conception.
- Créez votre application React.
- Installer le Semantic UI Package pour React.
- Créez le premier écran de votre application.
- Créez vos fichiers CREATE, READ et UPDATE pour votre composant CREATE, READ et UPDATE, pas besoin d’un nouveau composant pour DELETE.