Programmazione.it
Django, framework per pythonisti
Scritto da Roberto Casadei il 25-07-2007 ore 08:44
Intel Cluster Studio XE
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.
Copyright Programmazione.it® 1999-2005. Tutti i diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002.