Dans Django, vous pouvez utiliser deux composants principaux pour créer une application web : les applications et les projets. Les développeurs utilisent parfois ces termes de manière interchangeable, bien qu’ils aient des significations et des fonctions distinctes dans le cadre web de Django.
Comprendre les projets Django
Dans Django, un projet est un conteneur de premier niveau pour votre application web. Un projet contient les configurations de votre application web et une ou plusieurs applications, chacune fournissant un ensemble spécifique de fonctionnalités ou de caractéristiques pour votre application web. Il contient également tous les composants partagés entre les différentes applications. Dans un projet Django, vous pouvez trouver des outils et des utilitaires qui facilitent la gestion de votre application web, tels que l’utilitaire de ligne de commande Django et le serveur de développement Django.
Composants d’un projet Django
Un projet Django contient généralement différentes applications et les configurations de votre application web. Lorsque vous créez un nouveau projet, Django génère automatiquement des fichiers contenant ces configurations. Les composants inclus dans un projet Django sont les suivants :
- Paramètres: Le module settings contient les configurations nécessaires à votre projet et aux applications individuelles de votre projet. Ce module contient principalement des options de configuration telles que la connexion à la base de données, l’intergiciel, l’application installée, les hôtes autorisés et d’autres configurations nécessaires au fonctionnement de votre application web.
- URLs: Le module URLs définit un modèle d’URL pour votre application. Chaque modèle d’URL dans votre projet peut soit correspondre à un autre modèle d’URL dans votre application, soit directement à une fonction de vue qui gère la requête pour l’URL spécifique. Que le modèle d’URL soit lié à une fonction de vue ou à un autre modèle d’URL dans votre application, le but ultime est de le lier à une vue qui traite la requête de manière efficace.
- WSGI: Le module WSGI (Web Server Gateway Interface) est la norme Python pour les serveurs et les applications web. Le module WSGI permet à Django de fonctionner sur différents serveurs.
- ASGI: Le module ASGI (Asynchronous Server Gateway Interface) gère les requêtes asynchrones telles que les connexions WebSockets. ASGI est un standard permettant aux serveurs web asynchrones de communiquer avec les applications web Python.
- Autres composants: Parfois, vous devrez ajouter vos propres composants à votre projet Django, en fonction des besoins de votre application. Ces composants comprennent des fichiers statiques, des modèles, des fichiers multimédias et des commandes de gestion personnalisées.
Comment créer un projet Django
Pour créer un projet Django, vous devez utiliser la commande django-admin (utilitaire en ligne de commande). Vous pouvez créer votre projet Django en suivant les étapes suivantes :
- Dans votre interface de ligne de commande, naviguez jusqu’au répertoire où vous souhaitez créer votre projet Django.
- Installez Django avec le gestionnaire de paquets pip.
pip install django - Tapez la commande suivante et exécutez-la :
django-admin startproject <your_project_name>
La commande ci-dessus créera un répertoire comme celui-ci :
Vous remarquerez une redondance dans les noms de votre répertoire de projet, c’est-à-dire que le nom de votre projet apparaît deux fois. Si vous voulez vous en débarrasser, vous pouvez ajouter un point lorsque vous exécutez votre commande startproject La commande se présente comme suit :
django-admin startproject <your_project_name> .
Maintenant, la structure de votre projet ressemblera à ceci :
Avec les étapes ci-dessus, vous devez avoir créé avec succès un projet Django. Le projet manage.py créé dans votre projet est important pour interagir avec votre projet Django.
Comprendre une application Django
Le but d’une application est de fournir à votre projet Django des fonctionnalités spécifiques. Une application vous aide à organiser votre base de code en divisant les fonctionnalités de votre projet en composants plus petits.
Par exemple, dans un projet de blog, vous aurez une application dédiée à l’authentification et à l’autorisation et une autre dédiée aux articles de blog. Vous pouvez créer plusieurs applications en fonction des besoins spécifiques de votre projet.
Composants d’une application Django
Une application Django est constituée de modules liés au projet, c’est-à-dire à une fonctionnalité spécifique de votre site web. Comme pour un projet, Django génère automatiquement des fichiers utiles lorsque vous créez une application. Les fichiers générés par Django sont les suivants :
- views.py: Ce fichier contient toute la logique nécessaire à la réception des requêtes et à l’envoi des réponses. Il détermine également le modèle HTML à rendre en fonction des actions de l’utilisateur sur votre site web.
- models.py: Ce module établit la structure des données de votre application et détermine comment la base de données les stockera. Il utilise l’ORM (Object-Relational Mapping) de Django pour définir les données. Le composant modèles définit les différentes relations de la base de données dans Django.
- admin.py: Le module admin définit l’interface d’administration de votre application Django. Vous devez enregistrer vos modèles dans le fichier admin. Si vous avez besoin de fonctionnalités d’administration supplémentaires à celles fournies par Django, vous pouvez définir des vues personnalisées pour votre interface d’administration dans ce module.
- urls.py: Ce fichier définit les modèles d’URL ou les routes propres à une application Django particulière. Parfois, Django ne génère pas automatiquement ce fichier. Dans ce cas, vous pouvez le créer manuellement dans votre répertoire d’application.
Django génère d’autres composants, tels que apps.py et tests.py. Ces fichiers définissent les configurations de votre application et vous permettent d’écrire des tests unitaires respectivement.
Comment créer une application Django
Avant de créer une application, vous devez avoir créé un projet. Après avoir créé votre projet, naviguez jusqu’au répertoire contenant le fichier manage.py et exécutez la commande suivante dans votre terminal :
python manage.py startproject <app_name>
La commande ci-dessus créera une structure de dossier comme celle-ci dans le même niveau de répertoire que votre projet :
Différence entre une application et un projet dans Django
Il existe des différences marquées entre un projet et une application dans Django. Certaines d’entre elles sont listées ci-dessous.
Réutilisation du code
Dans Django, une application est un composant réutilisable de votre application web. Cela signifie que si vous avez une application qui gère l’authentification des utilisateurs pour un projet, vous pouvez réutiliser la même application dans un autre projet avec peu ou pas de changements. Un projet, en revanche, n’est pas réutilisable. Une fois que vous avez créé un projet pour une application web particulière, vous ne pouvez pas l’utiliser pour une autre application.
Champ d’application
Un projet opère à un niveau plus élevé qu’une application car il est responsable de la configuration et de la gestion globales de votre site web. En revanche, une application n’est responsable que d’une caractéristique ou d’une fonctionnalité spécifique de votre site web.
Structure des dossiers
La différence la plus évidente entre une application et un projet est la structure de leurs dossiers. Un projet comprend généralement les paramètres et autres fichiers de configuration nécessaires au bon fonctionnement de votre site web.
Une application suit l’architecture MVT de Django. Elle ne contient que des fichiers et des configurations responsables du bien-être d’une fonctionnalité spécifique de votre site web.
Votre projet et votre application travaillent ensemble pour créer une bonne application web
Bien que votre projet et votre application soient uniques, ils servent en fin de compte à vous offrir une expérience transparente lors de la création de votre application. Vous devriez pouvoir combiner les composants du projet et de l’application pour créer et personnaliser votre application web. Avec votre application et votre projet en place, vous pouvez commencer à construire votre site web avec Django.
