Come abbiamo detto le View, a dispetto del nome, realizzano lo strato di Controller del pattern MVC. Ogni volta che facciamo una richiesta quindi, lanciamo una View. Per questo motivo abbiamo bisogno di associare a ciascuna View il relativo URL, grazie alle configurazioni effettuate nel file urls.py
.
Una View è una funzione Python che prende una Web Request e restituisce una Web Response, in modo molto simile a quanto fanno le servlet in Java o gli HttpHandler in ASP.NET. A seconda della richiesta possiamo decidere di generare pagine HTML, documenti XML, immagini o status di errore HTTP.
Le View sono contenute nel file views.py
incluso nella cartella della relativa applicazione (ad esempio app
). Per creare una nuova View è sufficiente aprire il file (o crearlo se non esiste), importare il namespace HttpResponse
e definire una nuova funzione.
View hello_world
from django.http import HttpResponse def hello_world(request): html = "<html><body><p>Hello, world!</p></body></html>" return HttpResponse(html)
La nostra hello_world
prende come primo parametro un oggetto HttpRequest
, in genere chiamato request
, e restituisce un oggetto HttpResponse
a cui passiamo la stringa con la mini-pagina Web di saluto.
Per raggiungere la nostra View con una richiesta al server abbiamo bisogno di impostare il mapping tra URL e View nel file urls.py
, apriamolo e modifichiamo la variabile urlpatterns
:
urlpatterns=patterns('',
# ...
( r'^app/helloworld/$', 'miosito.app.views.hello_world' ),
)
In questo modo Django mappa tutti gli URL che soddisfano l'espressione regolare ^app/helloworld/$
nella View hello_world
dell'applicazione app
del sito miosito
.
È arrivato il momento di avviare il server e provare la nostra prima applicazione:
Avviare il server
manage.py runserver
Puntiamo il browser all'indirizzo:
http://localhost:8000/app/helloworld/
E finalmente otteniamo: