OUJOOD.COM
Ce que fait une vue Django
Une vue est une fonction Python ordinaire avec une contrainte : elle reçoit un objet request en paramètre et doit retourner un objet réponse. Entre les deux, vous faites ce que vous voulez — interroger la base de données, calculer quelque chose, préparer des données pour un template.
Si vous venez d'un framework MVC classique (Rails, Laravel, ASP.NET), attention au décalage de terminologie : les views Django correspondent aux contrôleurs en MVC. Les templates Django correspondent aux views en MVC. C'est une source de confusion fréquente au départ.
Les vues vivent dans un fichier views.py à la racine de chaque application. Django génère ce fichier automatiquement quand vous créez une application avec startapp.
Écrire la première vue de l'application membres
Ouvrez membres/views.py. Django l'a créé avec ce contenu par défaut :
from django.shortcuts import render
# Create your views here.
Ajoutez l'import de HttpResponse et écrivez la fonction index :
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
# Retourne une réponse texte brute sans template
return HttpResponse("Bonjour le monde !")
La fonction index reçoit l'objet request — Django le passe automatiquement. Elle retourne un HttpResponse contenant du texte brut. Pour l'instant c'est suffisant : aucun template, aucune base de données, juste une réponse directe.
Créer le fichier urls.py de l'application
Chaque application Django a son propre fichier d'URLs. Django ne le génère pas automatiquement — c'est à vous de le créer. Dans le dossier membres/, créez un fichier urls.py et ajoutez :
from django.urls import path
from . import views
urlpatterns = [
# http://localhost:8000/membres/ → appelle views.index()
path('', views.index, name='index'),
]
Le from . import views importe le fichier views.py du dossier courant (l'application membres). Le chemin vide '' signifie que cette vue répond à la racine de l'URL de l'application — /membres/ dans ce cas.
Brancher l'application sur le projet principal
Le fichier membres/urls.py gère les URLs internes à l'application. Pour que Django le consulte, il faut l'inclure dans le fichier monmonde/urls.py qui est le routeur principal du projet.
Ouvrez monmonde/urls.py et modifiez-le ainsi :
from django.contrib import admin # include() permet de déléguer un préfixe d'URL à un autre fichier urls.py from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), # Toute URL commençant par "membres/" est gérée par membres/urls.py path('membres/', include('membres.urls')), ]
La fonction include() dit à Django : "pour toute URL qui commence par membres/, va lire le fichier membres/urls.py et laisse-le gérer la suite." C'est le mécanisme standard pour organiser les URLs d'un projet multi-applications.
Tester la vue dans le navigateur
Lancez le serveur depuis le dossier qui contient manage.py :
python manage.py runserver
Ouvrez http://127.0.0.1:8000/membres/ dans votre navigateur. Le texte "Bonjour le monde !" s'affiche. La vue fonctionne, le routage est en place.
Pour l'instant, la vue renvoie du texte brut via HttpResponse. Dans le chapitre suivant, vous allez créer un vrai template HTML et utiliser la fonction render() pour transmettre des données dynamiques à la page.
Par carabde | Mis à jour le 05 mai 2025