1. A propos des applications Django
En Django, une application fait référence à un module ou à un composant autonome qui fournit une fonctionnalité spécifique dans un projet Django. Une application django est un répertoire contenant des modules Python, des modèles, des fichiers views et d'autres ressources qui fonctionnent ensemble pour implémenter une fonctionnalité ou un ensemble de fonctionnalités particulier.
Une application Django se compose généralement des composants suivants :
- Models : les modèles définissent la structure des données et représentent les tables de la base de données. Ils sont définis comme des classes Python qui héritent de la classe models.Model de Django. Les modèles définissent les champs, les relations et les comportements des données.
- Views : les vues gèrent la logique de traitement des requêtes HTTP et de génération de réponses. Ce sont des fonctions ou des classes Python qui reçoivent des requêtes, interagissent avec des modèles ou effectuent d'autres opérations et renvoient des réponses, généralement sous la forme de pages HTML.
- URL : les URL (Uniform Resource Locators) définissent les modèles d'URL et les associent à des vues spécifiques de l'application. Ils déterminent quelle vue est appelée pour une URL particulière.
- Static files: : les fichiers statiques incluent les feuilles de style CSS, les fichiers JavaScript, les images et d'autres éléments utilisés par l'application. Ils sont servis directement par le serveur web et ne sont pas traités par Django.
- Forms : les formulaires sont utilisés pour gérer les entrées de l'utilisateur, valider les données et interagir avec les modèles. Django fournit une fonctionnalité de gestion des formulaires pour simplifier la création et le traitement des formulaires.
- Admin : l'interface d'administration de Django permet une gestion et une manipulation faciles des données de l'application via une interface d'administration basée sur le Web. Il est généré automatiquement en fonction des modèles de l'application et peut être personnalisé pour répondre à des besoins spécifiques.
Les applications de Django sont conçues pour être modulaires, réutilisables et enfichables. Ils favorisent l'organisation du code, la séparation des préoccupations et la maintenabilité. Plusieurs applications peuvent être créées dans un projet Django, chacune étant responsable d'une fonctionnalité ou d'un aspect spécifique de l'application globale. Django fournit des outils et des conventions pour gérer et intégrer des applications dans un projet de manière harminique et transparente.
2. Comment créer une application Django
Dans ce paragraphe, nous allons voir comment créer une application django nommée myapp au sein d'un projet django nommé mysite
Pour créer une application Django appelée "myapp" dans un projet appelé "mysite", vous pouvez suivre ces étapes :
- Ouvrez votre terminal ou votre invite de commande et accédez au répertoire dans lequel vous souhaitez créer votre projet Django.
- Créez un nouveau projet Django appelé "mysite" en exécutant la commande suivante :
1 |
django-admin startproject mysite |
- Passez dans le répertoire du projet en exécutant :
1 |
cd mysite |
- Créez une nouvelle application Django dans le projet en exécutant la commande suivante :
1 |
python manage.py startapp myapp |
Après avoir exécuté la commande, un nouveau répertoire nommé "myapp" sera créé. Dans ce répertoire, vous trouverez divers fichiers et dossiers, notamment models.py, views.py, urls.py.
- Définissez les modèles de votre application en ouvrant le fichier models.py dans le répertoire "myapp" et en créant des classes Python qui héritent de models.Model. Définissez les champs, les relations et toutes les méthodes supplémentaires requises pour les données de votre application. (Nous verrons tout cela avec plus de détails dans les prochains tutos)
- Implémentez la logique des vues de votre application en ouvrant le fichier views.py dans le répertoire "myapp". Définissez des fonctions ou des classes Python qui gèrent les requêtes HTTP et génèrent des réponses. Ces vues peuvent interagir avec des modèles et effectuer d'autres opérations selon les besoins.
- Définissez des modèles d'URL pour votre application en créant un nouveau fichier urls.py dans le répertoire "myapp". Vous pouvez définir des modèles d'URL spécifiques à votre application et les mapper aux vues correspondantes.
Pour utiliser votre application nouvellement créée, vous devez l'ajouter aux paramètres du projet. Ouvrez le fichier settings.py dans le répertoire "mysite", localisez la liste INSTALLED_APPS et ajoutez le nom de votre application, qui est "myapp", à la liste :
1 2 3 4 5 6 7 8 9 |
INSTALLED_APPS = [ 'myapp.apps.MyappConfig', "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", ] |
3. Structure hiérarchique de l'application Django
Pour avoir une idée de la structure d'une application Django, voici une structure hiérarchique d'un projet Django appelé "mysite" avec une application Django appelée "myapp":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
mysite/ ├── mysite/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── myapp/ │ ├── migrations/ │ │ └── __init__.py │ ├── templates/ │ │ └── myapp/ │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── models.py │ ├── tests.py │ └── views.py └── manage.py |
Explication de la structure du répertoire :
- Le répertoire externe "mysite": est le répertoire racine du projet Django.
- Le répertoire interne "mysite": à l'intérieur du répertoire "mysite". Ce répertoire interne contient les paramètres au niveau du projet, les URL et d'autres fichiers liés au projet.
- Le répertoire "myapp" : est créé dans le projet et représente l'application Django nommée "myapp".
- Le répertoire "migrations" : à l'intérieur du répertoire "myapp", qui contient les fichiers de migration de base de données générés par Django pour gérer les changements de schéma de base de données.
- Le répertoire "templates" : dans le répertoire "myapp", vous pouvez stocker des modèles HTML spécifiques à l'application "myapp".
- Les fichiers "init.py" : sont nécessaires pour traiter les répertoires comme des packages Python.
- Le fichier "admin.py": est utilisé pour personnaliser l'interface d'administration de Django pour l'application "myapp".
- Le fichier "apps.py": contient la configuration de l'application "myapp".
- Le fichier "models.py": est l'endroit où vous définissez les modèles (tables de base de données) pour l'application "myapp".
- Le fichier "tests.py" : sert à écrire des tests spécifiques à l'application "myapp".
- Le fichier "views.py" : contient les vues (fonctions ou classes) chargées de gérer les requêtes HTTP et de générer des réponses pour l'application « monapplication ».
- Le fichier "manage.py" : dont nous avons déjà parlé, est le script de gestion de projet Django.
Cette structure hiérarchique illustre la disposition typique d'un projet Django avec une application. Il permet le développement modulaire et l'organisation du code, en séparant les composants au niveau du projet des composants spécifiques à l'application.
4. Paramètrage des urls de l'application 'myapp'
4.1 Définir la vue de l'application 'myapp'
Afin de pouvoir afficher notre application django 'myapp', nous devons d'abord définir la vue de l'application en éditant le fichier : myapp/views.py. Nous ajouterons à cette dernière une fonction qui générera la vue de l'application 'myapp' :
1 2 3 4 5 6 7 |
# myapp/views.py from django.shortcuts import render from django.http import HttpResponse # function that generates the application view def myapp_home(request): return HttpResponse("Welcome to myapp!") |
4.2 Configuration de l'url pour "myapp"
Pour configurer l'URL de notre application "myapp" dans notre projet Django, nous devons suivre ces étapes :
Dans le répertoire "myapp": créez un nouveau fichier appelé urls.py s'il n'existe pas déjà.
Ouvrez le fichier urls.py nouvellement créé dans le répertoire "myapp".
Définissez les modèles d'URL spécifiques à l'application "myapp" dans le fichier urls.py. Voici comment faire:
1 2 3 4 5 6 7 8 |
# myapp/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.myapp_home, name='home'), # Add more URL patterns as needed ] |
4.3 Déclaration du fichier "monapp/urls.py" au niveau "mysite/urls.py"
nous devons d'abord importer la fonction include() du module django.urls en ajoutant la déclaration d'importation suivante en haut du fichier mysite/urls.py :
1 |
from django.urls import include |
Ajoutez un nouveau format d'URL pour l'application "myapp" en incluant les formats d'URL :
1 |
path('myapp/', include('myapp.urls')), |
Cette ligne définit un modèle d'URL qui mappe toute URL commençant par "myapp/" pour qu'elle soit gérée par les modèles d'URL définis dans le fichier urls.py de notre application "myapp".
Enfin, voici le code de mysite/urls:
1 2 3 4 5 6 7 8 |
# mysite/urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path("admin/", admin.site.urls), path('myapp/' , include('myapp.urls'), ] |
5. Lancez myapp dans le navigateur
Pour lancer "myapp" dans le navigateur, nous devons démarrer le serveur de développement Django. Voici comment procéder :
- Ouvrez votre terminal ou invite de commande.
- Accédez au répertoire racine de votre projet Django (le répertoire contenant le fichier manage.py).
- Démarrez le serveur de développement en exécutant la commande suivante :
1 |
python manage.py runserver |
Après avoir exécuté la commande, vous devriez voir une sortie semblable à la suivante :
1 2 |
Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. |
Maintenant pour accéder à votre application, il suffit d'ouvrir votre navigateur Web et saisir l'URL suivante : http://127.0.0.1:8000/myapp/
Cette URL représente le serveur de développement local s'exécutant sur votre machine et accédant à l'application "myapp".
Nous devrions maintenant pouvoir afficher notre application "myapp" au niveau du navigateur. Si nous avons défini une fonction d'affichage telle que myapp_home() dans le fichier views.py de notre application "myapp" et configuré correctement le modèle d'URL, la réponse de cette fonction d'affichage sera affichée dans le navigateur.