Sommaire

Introduction

Comment les requêtes HTTP sont-elles traitées dans Django ?

Étape 1 : Django détermine quelle configuration d’URL choisir. En règle générale, c’est celle que vous avez définie dans le fichier settings.py par la variable ROOT_URLCONF en général le fichier urls.py de votre projet. Cependant, si la requête a été prétraitée par un middleware et qu’elle possède un attribut urlconf, c’est cet attribut qui sera utilisé à la place de ROOT_URLCONF.

Étape 2 : Django charge le module Python trouvé en étape 1 et recherche la variable urlpatterns. Cette variable est attendue sous la forme d’une liste Python. Elle est en règle général le résultat d’un appel à la fonction django.conf.urls.patterns().

Étape 3 : Django parcourt la liste urlpatterns et recherche la première expression régulière qui est vérifiée.

Étape 4 : dès qu’une expression régulière est vérifiée, Django appelle la vue qui lui est associée, avec les arguments suivants :

  • En première position : la requête HTTP sous la forme d’une instance de la classe HttpRequest.

  • Sous la forme d’arguments nommés, la liste des valeurs capturées par l’expression régulière sous la forme de groupes nommés : nom_donné_au_groupe=’valeur_capturée’ ...