Il
sito ufficiale di Django spiega chiaramente di cosa si tratta:
”Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic, design… The Web framework for perfectionists with deadlines".
Django è rilasciato sotto
licenza BSD (Berkeley Software Distribution) e il suo obiettivo è facilitare gli sviluppatori a costruire rapidamente e in modo chiaro e pulito applicazioni Web eleganti. Esso implementa il pattern
MVC (Model View Controller), che negli ultimi anni ha guidato lo sviluppo in modo ordinato e in modo da separare i vari aspetti di programmazione: i
dati (modello), la
rappresentazione (vista), la gestione delle
richieste (controller).
Le funzionalità chiave del framework possono essere così riassunte:
- ORM (Object Relational Mapping) per una rappresentazione orientata agli oggetti del database;
- interfaccia di amministrazione automatica per l'esecuzione dei compiti più ripetitivi;
- design elegante e flessibile degli URL;
- sistema di template potente, estensibile e designer-friendly;
- cache system flessibile, che permette alte prestazioni;
- supporto per l'internazionalizzazione che consente la creazione di contenuti localizzati.
L'
installazione di
Django è semplice; si scarica l'ultima release e si lancia il comando: [code]
> python setup.py install[/code]
La creazione di un progetto è altrettanto banale: [code]
> django-admin startproject projectname[/code] Quest'ultimo comando crea una directory
projectname/ con i seguenti file:
manage.py che permette di interagire con il progetto
Django creato;
settings.py che mantiene i dati di configurazione, tra cui quelli per la connessione al database;
urls.py che consente di specificare gli schemi di mappatura degli URL. Si può ora procedere con la creazione di un'applicazione:
[code]
projectname> python manage.py startapp appname[/code]
Questo comando genererà una directory
projectname/appname/ con i file
models.py e
views.py. Tuttavia
Django ignora ancora l'esistenza di tale applicazione, quindi bisogna intervenire in
settings.py e aggiungere un elemento a
INSTALLED_APPS. Per avviare il Web server — leggero, scritto in
Python e destinato esclusivamente alla fase di sviluppo — è sufficiente eseguire:
[code]
> python manage.py runserver[/code]
La creazione di un nuovo modello avviene nel file
projectname/appname/models.py dove è sufficiente estendere da
django.db.models.Model e specificare i campi necessari in una nuova classe. Successivamente ci si affida a
manage.py con due comandi:
[code]
> python manage.py sql appname
> python manage.py syncdb[/code]
Una shell può essere avviata per eseguire interattivamente comandi e interagire con il modello e l'applicazione
Django:
[code]
> python manage.py shell[/code]
Per rendere utilizzabile la funzione di amministrazione automatica, bisogna:
- aggiungere django.contrib.admin in INSTALLED_APPS;
- sincronizzare il database con il comando syncdb;
- togliere i commenti destinati all'area admin come segnalato in urls.py;
- rendere le classi del modello "amministrabili", creando una classe interna Admin alla quale tra l'altro si possono attribuire diverse customizzazioni.
La creazione delle viste deve essere preceduta dalla definizione del design degli URL, che avviene specificando un modulo
URLconf. In particolare, il sistema guarda
ROOT_URLCONF per caricare il modulo dove ci sarà una variabile
urlpatterns, la quale è una sequenza di tuple nel formato:
[code]
(espressione_regolare, funzione_di_callback [, dizionario_opzionale])[/code]
Se viene trovata un'occorrenza rispetto all'espressione regolare analizzata, viene invocata la funzione di
callback con un oggetto
HTTPRequest. Le view si definiscono in
projectname/appname/views.py e consistono in semplici metodi, che restituiscono un oggetto
HttpResponse che contiene il contenuto della risposta (che nel migliore dei casi sarà un
template) o un'
eccezione (esempio:
Http404).
Il passo successivo implica la creazione dei template, che vanno messi in una directory che sarà il valore di
TEMPLATE_DIRS in
settings.py, il cui linguaggio
embedded è specificato tra
{% e %}, dove effettivamente si disegnerà l'interfaccia utente. Il sito mette a disposizione un
tutorial completo e in ogni caso invito a visitare la pagina di
documentazione.