les URLs et les Vues¶
Pour faire fonctionner notre application, nous avons besoin de configurer au moins une route (URL) qui va déclencher un comportement. Les routes se configurent dans les fichiers urls.py, tout d’abord celui de l’app principale, puis dans les fichiers urls.py des autres apps.
Les fichiers urls.py¶
Editons tout d’abord le fichier principal GestionTaches/urls.py et ajoutons la ligne suivante dans urlpatterns :
path('lesTaches/',include('lesTaches.urls'))
Vous aurez un petit import à ajouter :
from django.urls import path, include
Anciennenment, on utilisait la fonction url :
url(r'^lesTaches/',include('lesTaches.urls'))
qui est dépréciée et remplacée par django.urls.path() . La fonction django.urls.re_path() sert pour la gestion d’urls plus complexes à l’aide d’expressions régulières.
Fichier urls.py dans l’App lesTaches¶
Créons ensuite dans le répertoire GestionTaches/lesTaches le fichier urls.py de notre application :
from django.urls import path
from . import views
urlpatterns=[
path('home',views.home,name='home'),
]
Les views¶
Les Views ou Vues correspondent en gros aux « contrôleurs » dans une application MVC, c’est à dire qu’elles vont faire généralement le lien entre le modèle et les templates d’affichage en jouant le rôle de « chef d’orchestre » ou d’aiguillage.
Dans le répertoire GestionTaches/lesTaches il va falloir ajouter dans le fichier views.py la fonction home() suivante :
from django.http import HttpResponse
def home(request):
return HttpResponse('bonjour à tous')
Relancer le serveur (si vous l’avez stoppé) et dans le navigateur, pointez sur l’URL : localhost:8000 .
Le message “Bonjour à tous” devrait apparaître …
Compliquons légèrement les choses pour pouvoir router des urls du type http://localhost:8000/lesTaches/home/toto.
Modifions tout d’abord le fichier urls.py de lesTaches de la façon suivante :
path('home/<name>',views.home,name='home'),
Ceci signifie que les urls du type http://localhost:8000/lesTaches/home/toto seront routées vers notre vue.
Modifiez maintenant la fonction home() avec le profil suivant (à vous de la compléter):
from django.http import HttpResponse
def home(request,name):
return HtppResponse(...)
du coup les urls du type localhost:8000/lesTaches/home/toto seront aussi routées vers notre vue.
Testez différentes urls en modifiant le paramètre fourni à path.
Comment faire en sorte que l’URL localhost:8000/lesTaches/home/ soit également routée ?
Réponse pour la view :
from django.http import HttpResponse
def home(request, name):
return HttpResponse("Bonjour depuis Django " + name)