-Le fonctionnement de Django: 1. Un peu de théorie : l’architecture MVC : Lorsq

-Le fonctionnement de Django: 1. Un peu de théorie : l’architecture MVC : Lorsque nous parlons de frameworks qui fournissent une interface graphique à l’utilisateur (soit une page web, comme ici avec Django, soit l’interface d’une application graphique classique, comme celle de votre traitement de texte par exemple), nous parlons souvent de l’architecture MVC. Il s’agit d’un modèle distinguant plusieurs rôles précis d’une application, qui doivent être accomplis. Comme son nom l’indique, l’architecture (ou « patron ») Modèle- Vue-Contrôleur est composé de trois entités distinctes, chacune ayant son propre rôle à remplir. Tout d’abord, le modèle représente une information enregistrée quelque part, le plus souvent dans une base de données. Il permet d’accéder à l’information, de la modifier, d’en ajouter une nouvelle, de vérifier que celle-ci correspond bien aux critères (on parle d’intégrité de l’information), de la mettre à jour, etc. Il s’agit d’une interface supplémentaire entre votre code et la base de données, mais qui simplifie grandement les choses, comme nous le verrons par la suite. Ensuite la vue qui est, comme son nom l’indique, la visualisation de l’information. C’est la seule chose que l’utilisateur peut voir. Non seulement elle sert à présenter une donnée, mais elle permet aussi de recueillir une éventuelle action de l’utilisateur (un clic sur un lien, ou la soumission d’un formulaire par exemple). Typiquement, un exemple de vue est une page web, ni plus, ni moins. Finalement, le contrôleur prend en charge tous les événements de l’utilisateur (accès à une page, soumission d’un formulaire, etc.). Il se charge, en fonction de la requête de l’utilisateur, de récupérer les données voulues dans les modèles. Après un éventuel traitement sur ces données, il transmet ces données à la vue, afin qu’elle s’occupe de les afficher. Lors de l’appel d’une page, c’est le contrôleur qui est chargé en premier, afin de savoir ce qu’il est nécessaire d’afficher. La spécificité de Django : le modèle MVT: L’architecture utilisée par Django diffère légèrement de l’architecture MVC classique. En effet, la « magie » de Django réside dans le fait qu’il gère lui-même la partie contrôleur (gestion des requêtes du client, des droits sur les actions…). Ainsi, nous parlons plutôt de framework utilisant l’architecture MVT : Modèle-Vue-Template. Cette architecture reprend les définitions de modèle et de vue que nous avons vues, et en introduit une nouvelle : le template (voir figure suivante). Un template est un fichier HTML, aussi appelé en français « gabarit ». Il sera récupéré par la vue et envoyé au visiteur ; cependant, avant d’être envoyé, il sera analysé et exécuté par le framework, comme s’il s’agissait d’un fichier avec du code. Django fournit un moteur de templates très utile qui permet, dans le code HTML, d’afficher des variables, d’utiliser des structures conditionnelles (if/else) ou encore des boucles (for), etc Concrètement, lorsque l’internaute appelle une page de votre site réalisé avec Django, le framework se charge, via les règles de routage URL définies, d’exécuter la vue correspondante. Cette dernière récupère les données des modèles et génère un rendu HTML à partir du template et de ces données. Une fois la page générée, l’appel fait chemin arrière, et le serveur renvoie le résultat au navigateur de l’internaute. On distingue les quatre parties qu’un développeur doit gérer : — Le routage des requêtes, en fonction de l’URL ; — La représentation des données dans l’application, avec leur gestion (ajout, édition, suppression…), c’est-à-dire les modèles ; — L’affichage de ces données et de toute autre information au format HTML, c’est-à-dire les templates ; — Enfin le lien entre les deux derniers points : la vue qui récupère les données et génère le template selon celles-ci. On en revient donc au modèle MVT. Le développeur se doit de fournir le modèle, la vue et le template. Une fois cela fait, il suffit juste d’assigner la vue à une URL précise, et la page est accessible. Si le template est un fichier HTML classique, un modèle en revanche sera écrit sous la forme d’une classe où chaque attribut de celle-ci correspondra à un champ dans la base de données. Django se chargera ensuite de créer la table correspondante dans la base de données, et de faire la liaison entre la base de données et les objets de votre classe. Non seulement il n’y a plus besoin d’écrire de requêtes pour interagir avec la base de données, mais en plus le framework propose la représentation de chaque entrée de la table sous forme d’une instance de la classe qui a été écrite. Il suffit donc d’accéder aux attributs de la classe pour accéder aux éléments dans la table et pouvoir les modifier, ce qui est très pratique ! Enfin, une vue est une simple fonction, qui prend comme paramètres des informations sur la requête (s’il s’agit d’une requête GET ou POST par exemple), et les paramètres qui ont été donnés dans l’URL. Par exemple, si l’identifiant ou le nom d’un article du blog a été donné dans l’URL crepes-bretonnes.com/blog/faire-de-bonnes-crepes, la vue récupérera faire de-bonnes-crêpes comme titre et cherchera dans la base de données l’article correspondant à afficher. Suite à quoi la vue générera le template avec le bon article et le renverra à l’utilisateur. 3. Projets et applications En plus de l’architecture MVT, Django introduit le développement d’un site sous forme de projet. Chaque site web conçu avec Django est considéré comme un projet, composé de plusieurs applications. Une application consiste en un dossier contenant plusieurs fichiers de code, chacun étant relatif à une tâche du modèle MVT que nous avons vu. En effet, chaque bloc du site web est isolé dans un dossier avec ses vues, ses modèles et ses schémas d’URL. Lors de la conception de votre site, vous allez devoir penser aux applications que vous souhaitez développer. Voici quelques exemples d’applications : — Un module d’actualités ; — Un forum ; — Un système de contact ; — Une galerie de photos ; — Un système de dons. Ce principe de séparation du projet en plusieurs applications possède deux avantages principaux : — Le code est beaucoup plus structuré. Les modèles et templates d’une application ne seront que rarement ou jamais utilisés dans une autre, nous gardons donc une séparation nette entre les différentes applications, ce qui évite de s’emmêler les pinceaux ! - Une application correctement conçue pourra être réutilisée dans d’autres projets très simplement, par un simple copier/coller, comme le montre la figure suivante. Ici, le développement du système d’articles sera fait une fois uniquement. Pour le second site, une légère retouche des templates suffira. Ce système permet de voir le site web comme des boîtes que nous agençons ensemble, accélérant considérablement le développement pour les projets qui suivent. Si vous souhaitez ajouter un blog sur votre projet, vous pouvez même télécharger une application déjà existante (via pip par exemple), comme Django Blog Zinnia , et personnaliser les templates en les surchargeant. Nous verrons ce principe plus loin.Il existe des milliers d’applications open source que vous pouvez télécharger et intégrer à vos projets. N’hésitez pas à faire un tour sur Django Packages pour trouver votre bonheur. . En résumé — Django respecte l’architecture MVT, directement inspirée du très populaire modèle MVC ; — Django gère de façon autonome la réception des requêtes et l’envoi des réponses au client (partie contrôleur) ; — Un projet est divisé en plusieurs applications, ayant chacune un ensemble de vues, de modèles et de schémas d’URL ; — Si elles sont bien conçues, ces applications sont réutilisables dans d’autres projets, puisque chaque application est indépendante. 3. Gestion d’un projet: Django propose un outil en ligne de commandes très utile qui permet énormément de choses : — Création de projets et applications ; — Création des tables dans la base de données selon les modèles de l’application ; — Lancement du serveur web de développement ; — Etc. Nous verrons dans ce chapitre comment utiliser cet outil, la structure d’un projet Django classique, comment créer ses projets et applications,et leur configuration. 1. Créons notre premier projet . En résumé: — L’administration de projet s’effectue via la commande python manage.py. Tout particulièrement, la création d’un projet se fait via la commande django-admin.py start project mon_projet. — À la création du projet, Django déploie un ensemble de fichiers, facilitant à la fois la structuration du projet et sa configuration. — Pour tester notre projet, il est possible de lancer un serveur de test, via la commande python manage.py runserver, dans le dossier de notre projet. Ce serveur de test ne doit pas être utilisé en production. — Il est nécessaire de modifier le settings.py, afin de configurer le projet selon nos besoins. Ce fichier ne doit pas être partagé avec les autres membres ou la production, puisqu’il contient des données dépendant de votre installation, comme la connexion à la base de données. uploads/Ingenierie_Lourd/ document-sans-titre 7 .pdf

  • 36
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager