Django Tutorial 2 – Applicazioni e Viste

Continuiamo il nostro tutorial che ci porterà a implementare una semplice applicazione web per gestire la nostra collezione musicale.

Ora che la base funziona dobbiamo iniziare a scrivere qualcosa di più complesso che una misera pagina di default. A questo scopo ci servono le viste. Le viste non sono altro che quella parte di programma che si occupa di recuperare tutte le informazioni necessarie alla visualizzazione della pagina che poi verranno passate ad un template in modo da essere trasformate in pagine web a tutti gli effetti. Solitamente le viste interrogano un database per recuperare i dati, questa volta invece cominceremo da una semplice vista di test.

La prima cosa da fare è creare una nuova applicazione che chiameremo musicdb in quanto sarà il centro vero e proprio della web application. Un sito complesso è solitamente composto da una o più applicazioni collegate fra loro. Piccoli siti, come quello che stiamo per fare, utilizzano solo un applicazione. Per fare questo, all’interno della cartella principale del sito, digitiamo:

django-admin startapp musicdb

Questo creerà un ulteriore cartella che contiene altri 4 file.

  • __init__.py Sempre il solito file init.
  • models.py Contiene i “modelli” ovvero la struttura del database espressa in python tramite le API di Django.
  • tests.py Contiene dei test per valutare la correttezza di query, associazioni, modelli e viste.
  • views.py Contiene le viste, ovvero quelle funzioni che si occupano di processare le richieste dell’utente generando dei contenuti (tramite i template) che verranno poi inviati al browser.

La seconda cosa da fare è aggiungere la nostra applicazione alle applicazioni del sito. Andiamo nel file “settings.py” e aggiungete ‘musicdb’ alle applicazioni in questo modo:


INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    'musicdb',
)

Poi dobbiamo scrivere una vista di prova. Andiamo nel file “views.py” dell’applicazione musicdb e inseriamo il seguente codice:


from django.http import HttpResponse

def view_test(request) :
    return HttpResponse("
<h1>Ciao! Questa è la tua applicazione!</h1>
"
)

Ora, dobbiamo solo collegare un URL a questa vista e quindi andiamo nel file “urls.py” e modifichiamo “urlpatterns” in questo modo:


urlpatterns = patterns('',
    # Example:
    # (r'^musicz/', include('musicz.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # (r'^admin/', include(admin.site.urls)),
    ( r'^test/$', "musicdb.views.view_test"),
)

Il primo elemento della tupla è una espressione regolare che serve ad intercettare l’url e a indirizzarlo alla funzione indicata come secondo elemento della tupla.

A questo punto non ci resta che testare tutto. Avviamo il server (python manage.py runserver) e andiamo all’indirizzo http://localhost:8000/test/. Quello che ci troviamo davanti dovrebbe essere una pagina come quella in figura.

Che bello! Funziona!

Comments are closed.