Django, framework web

Les vues

Présentation

Dans la philosophie Django, une vue est un type de page web servant généralement à une action spécifique, et utilisant un template de présentation spécifique. Les vues sont toute des fonctions Python, stockées dans le fichier views.py du répertoire de l’application. Cependant, là ou d’autres frameworks font un lien direct entre le nom de la vue et l’adresse à utiliser, Django utilise un autre système, dans lequel il nous faut spécifier, pour chaque URL, quelle vue y associer.

Exemple

from django.shortcuts import get_object_or_404, render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.template import RequestContext
from polls.models import Choice, Poll
# ...
def vote(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the poll voting form.
return render_to_response('polls/detail.html', {
'poll': p,
'error_message': "You didn't select a choice.",
}, context_instance=RequestContext(request))
else:
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully dealing
# with POST data. This prevents data from being posted twice if a
# user hits the Back button.
return HttpResponseRedirect(reverse('polls.views.results', args=(p.id,)))