Aller au contenu

Vues & URLs

Répondre à la visite d'un utilisateur avec les vues et router les requêtes avec les URLs.


Définir les vues

Le fichier views.py gère l'ensemble des vues avec le fichier urls.py.

  • Une vue a pour fonction de répondre à la visite d'un utilisateur sur le site en renvoyant une page que l'utilisateur peut voir.
  • Une vue est une fonction qui accepte un objet HttpRequest comme paramètre et retourne un objet HttpResponse.
# pong/views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse('<h1>Hello Django!</h1>')

Signatures des vues

Le premier paramètre de la fonction est une variable contenant l'objet HttpRequest. Par convention, nous le nommons toujours request. La valeur de retour de la fonction est toujours un objet HttpResponse.


Configurer les URLs

Un modèle d'URL est la façon dont nous indiquons à Django qu'il doit être à l'écoute d'une requête pour une URL donnée, puis appeler une vue spécifique pour générer une page.

Importation de l'élément vue dans urls.py :

# pong/urls.py

from django.contrib import admin
from django.urls import path
from pong import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index)
]

Utiliser les modèles dans les vues

Mettre à jour views.py pour afficher les données issues des modèles :

# pong/views.py

from django.shortcuts import render
from django.http        import HttpResponse
from pong.models        import Player

def index(request):
    players = Player.objects.all()
    return render(request, 'pong/log/log.html', {'players': players})

Le paramètre render

render prend plusieurs paramètres : 'pong/log/log.html' est le chemin du fichier HTML à récupérer. Le troisième argument est un « dictionnaire de contexte » : 'players': players permet de récupérer tous les objets de notre modèle.