Inserisci qui la tua pubblicità

Django - Introduzione

Introduzione al Framework innovativo

Adrian Holovaty, uno degli ideatori e autori di Django assieme a Simon Willison e Jacob Kaplan-Moss, è anche un appassionato di musica; se volete, potete vederlo all’opera su YouTube mentre suona la chitarra, all’indirizzo http://www.youtube.com/adrianholovaty. In particolare Adrian è appassionato di gipsy jazz (musica zingara), un genere che è stato reso famoso da un grandissimo chitarrista: Django Reinhardt (Figura I.1). La storia di Reinhardt è avvincente anche per via di un grave incidente che subì a diciotto anni: un incendio distrusse la sua roulotte, rendendo quasi inutilizzabili le ultime due dita della sua mano sinistra. Trovandosi in una situazione che avrebbe interrotto la carriera di qualunque altro chitarrista, Django sviluppò invece una tecnica rivoluzionaria che gli permise comunque di suonare divinamente la sua chitarra. Adrian ha scelto il nome Django per la sua passione per la musica gipsy. A me però piace pensare che un altro motivo sia anche il fatto che, come questo straordinario musicista riuscì a fare il suo lavoro con il 40% in meno delle dita della mano sinistra, noi possiamo, grazie a Django, fare il nostro lavoro nel 40% in meno del tempo. :-) Requisito fondamentale per poter programmare Django è conoscere Python, ma vediamo se ne vale la pena evidenziandone alcuni grandi lavori fatti con questo potente linguaggio. Nell’eventualità che non lo conosciate e che stiate decidendo se vale la pena o meno di impararlo per poter usare Django, provo a stuzzicare il vostro appetito (ricordate: questo è un libro di cucina). La prima domanda delle FAQ (Frequently Asked Questions, le domande più frequenti) sul sito ufficiale di Python http://www.python.org è “Cos’è Python?”. Leggiamo assieme la risposta: “Python è un linguaggio di programmazione interpretato, interattivo e orientato agli oggetti. Incorpora al suo interno moduli, eccezioni, tipizzazione dinamica, tipi di dato di altissimo livello e classi. Python combina una eccezionale potenza con una sintassi estremamente chiara. Ha interfacce verso molte chiamate di sistema, oltre che verso diversi ambienti grafici, ed è estendibile in C e in C++. È inoltre usabile come linguaggio di configurazione e di estensione per le applicazioni che richiedono un’interfaccia programmabile. Da ultimo, Python è portabile: può girare su molte varianti di UNIX, sul Mac, sui PC con MS-DOS, Windows, Windows NT e OS/2”. A chi dobbiamo una meraviglia del genere? A un geniale signore olandese che risponde al nome di Guido Van Rossum. Curiosamente Guido non è la traduzione italiana del suo nome, è proprio il suo nome originale in olandese. Guido, nel lontano Natale del 1989, invece di passare le sue vacanze a decorare l’albero, decise di scrivere un linguaggio che correggesse la maggior parte dei difetti, se non tutti, che secondo lui erano presenti negli altri linguaggi. Per nostra fortuna Guido Van Rossum era, ed è tuttora, un grande esperto di linguaggi di programmazione e questo ha fatto sì che fin da subito la sua creatura avesse un notevole successo, dapprima tra i colleghi del centro di ricerca dove lavorava in quel periodo e poi, dopo la pubblicazione su USENET nel febbraio del 1991, in tutto il mondo. Una domanda che spesso sento fare da chi non lo conosce è: “Ma c’è qualcuno che usa Python in ambito professionale?”. La risposta non può che essere “Sì!”. IBM, Google, Sun, Hewlett Packard, Industrial Light & Magic (quelli che hanno fatto Guerre Stellari), la NASA (quelli che sono andati sulla Luna); perfino in Microsoft usano Python. Non ci credete? Provate a digitare in Google site:microsoft.com python. In questo momento ci sono 9780 risultati e uno di questi si intitola Open Source at Microsoft e si occupa di IronPython, la versione di Python per .NET. Forse sarebbe più corretto domandarsi chi ancora non lo usa... Ma cos'è Django? "Django è un Web framework Python di alto livello che incoraggia la rapidità di sviluppo ed una progettazione pulita e orientata alla praticità." Questa è la definizione (miseramente tradotta da me) di Django che viene data sul sito ufficiale e sebbene lo abbia iniziato a studiare da poco vi assicuro che mantiene quello che promette. Su che principio si basa Django? La cosa che più mi è piaciuta di Django è che rende quasi obbligatoria l'applicazione del principio DRY (Dont Repeat Yourself) che spiego meglio in questo post . In sostanza applicando questo principio si cerca di evitare la duplicazione dell'informazione per ridurre la possibilità di errori ed aumentare l'indipendenza tra gli elementi di un progetto. Dove si manifesta il principio DRY? Questo principio è applicato in tutto il framework dall'inizio alla fine rendendo quasi impossibili inutili e dannose ripetizioni. Modello vista e template trattano infatti 3 aspetti ortogonali e mai in contatto tra loro del framework. Unico punto di contatto (dove sarebbero possibili ripetizioni) che ho trovato finora è tra la definizione degli URL ed il modello ma con un po' di buon senso è facile evitare duplicazioni. Come è fatto Django? Di seguito una breve carrellata delle principali caratteristiche di questo framework: Object-relational mapper (ORM): Dà la possibilità di mappare gli oggetti su Database relazionali. In parole povere significa che scrivendo delle semplici classi Python si ottiene un databse ed un'interfaccia intuitiva ma molto potente verso il database stesso. Resta comunque la possibilità di scrivere l'SQL per i più affezionati. Area di Amministrazione generata automaticamente: Django mette a disposizione una semplice ma efficacissima area amministrativa che ad ogni campo del modello associa un'interfaccia semplice e veloce di inserimento e modifica dei dati. Sistema di creazione degli URL semplice ed elegante: Con semplici espresioni regolari si associano gli URL a specifiche viste che li trattano separatamente. Sistema per la gestione della Cache: Si può utilizzare memcached o un qualsiasi altro framework di caching. E' semplice impostare granularità del caching. Internazionalizzazione: Django fornisce il pieno supporto per applicazioni multi-lingua, permettendoti di specificare stringhe di traduzione e mettendo a disposizione funzionalità specifiche per ogni lingua. In conclusione: Un gran bel mix di ottime idee improntate alla massima semplicità porta Django ad essere uno dei framework più promettenti del prossimo futuro. Aspettando la release 1.0 e le API definitive vi invito a scoprire questa creatura che i suoi sviluppatori definiscono così: Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
[email protected]