OUJOOD.COM
Projet vs application — quelle différence ?
Un projet Django est le conteneur global de votre site : il regroupe la configuration, les URLs racines et les paramètres. Une application est un module fonctionnel à l'intérieur de ce projet — une section membres, un blog, une boutique, un formulaire de contact. Un même projet peut héberger plusieurs applications indépendantes.
Cette séparation est intentionnelle : elle permet de réutiliser une application dans un autre projet, ou de la faire évoluer sans toucher au reste du site.
Écrire une première vue
Avant de créer une application complète, faisons le tour minimal : une vue qui renvoie du texte brut au navigateur. Cela suffit pour comprendre comment Django relie une URL à du code Python.
Dans le dossier interne de votre projet (monmonde/monmonde/, là où se trouvent settings.py et urls.py), créez un fichier views.py et ajoutez ce code :
# HttpResponse permet de renvoyer une réponse texte directement, # sans passer par un template HTML from django.http import HttpResponse def dire_bonjour(request): # request contient toutes les infos sur la requête HTTP reçue return HttpResponse("Bonjour Oujood !")
La fonction dire_bonjour reçoit obligatoirement un paramètre request — Django le passe automatiquement à chaque appel. Elle retourne un objet HttpResponse contenant le texte à afficher.
Brancher la vue sur une URL
Une vue sans URL est inaccessible. Ouvrez monmonde/urls.py et ajoutez l'import de votre fonction, puis déclarez le chemin :
from django.contrib import admin from django.urls import path # On importe la fonction depuis le fichier views.py du projet from monmonde.views import dire_bonjour urlpatterns = [ path('admin/', admin.site.urls), # http://localhost:8000/bonjour/ appellera dire_bonjour() path('bonjour/', dire_bonjour), ]
La fonction path() prend deux arguments essentiels : l'URL à reconnaître (sans le domaine), et la fonction de vue à appeler. Démarrez le serveur avec python manage.py runserver, puis ouvrez http://127.0.0.1:8000/bonjour/ dans votre navigateur. Le texte "Bonjour Oujood !" s'affiche.
Créer une vraie application avec startapp
Une vue placée directement dans le dossier projet, c'est bien pour tester. Pour un projet réel, Django organise le code en applications séparées. Créons une application nommée membres :
# À exécuter depuis le dossier qui contient manage.py
python manage.py startapp membres
Si le serveur tourne encore, arrêtez-le d'abord avec Ctrl+C. Django génère un dossier membres/ avec cette structure :
monmonde/
manage.py
monmonde/
membres/
migrations/
__init__.py
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
Voici le rôle de chaque fichier généré :
views.py — les fonctions ou classes qui traitent les requêtes et renvoient les réponses. C'est là que vit la logique de l'application.
models.py — la définition des données : chaque classe correspond à une table en base de données.
admin.py — l'enregistrement des modèles dans l'interface d'administration Django.
apps.py — la configuration de l'application (nom, label). Django le lit au démarrage.
tests.py — les tests unitaires de l'application.
migrations/ — les fichiers générés automatiquement par Django pour faire évoluer la structure de la base de données.
L'architecture MVT appliquée à votre application
Maintenant que vous avez une application, les trois couches MVT ont chacune leur fichier concret :
Model → membres/models.py : vous y définissez la structure des données (champs, types, relations). Django génère le SQL correspondant. Voir le chapitre Django Models.
View → membres/views.py : vous y écrivez les fonctions qui récupèrent les données et les transmettent aux templates. Voir le chapitre Django Views.
Template → dossier templates/ à créer : les fichiers HTML avec les balises Django pour afficher les données dynamiquement. Voir le chapitre Django Templates.
Par carabde | Mis à jour le 05 mai 2025