logo oujood
🔍

Créer une application avec Django

Un projet Django peut contenir plusieurs applications. Dans ce chapitre, vous allez créer votre première application, écrire une vue simple et la connecter à une URL pour afficher une réponse dans le navigateur.

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 :

  📋 Copier le 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 :

  📋 Copier le code

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 :

  📋 Copier le code

# À 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 :

  📋 Copier le code

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 :

Modelmembres/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.

Viewmembres/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