Django è un framework open source per lo sviluppo di applicazioni web, scritto in linguaggio Python.

Creato il 18 dicembre 2013 da Hugor @msdiaz61

Django è un framework open source per lo sviluppo di applicazioni web, scritto in linguaggio Python, seguendo il pattern Model-View-Controller. Il progetto è sviluppato dalla "Django Software Foundation" (DSF), un'organizzazione indipendente senza scopo di lucro.Venne concepito inizialmente per gestire diversi siti di notizie per la World Company di Lawrence (Kansas), e rilasciato con una licenza BSD a luglio 2005.

Nel settembre 2008 è stata rilasciata la versione 1.0 del framework, che però non garantisce piena compatibilità con le versioni precedenti.

Alcuni siti noti che utilizzano questo framework sono attualmente Pinterest, Instagram, Mozilla, The Washington Times, e Public Broadcasting Service.

Come Ruby on Rails, un altro popolare framework, Django è stato utilizzato per diverso tempo prima di essere rilasciato pubblicamente; è stato sviluppato da Adrian Holovaty, Simon Willison, Jacob Kaplan-Moss e Wilson Miner mentre lavoravano alla World Company, e venne utilizzato inizialmente nella gestione di tre siti di notizie: The Lawrence Journal-World, lawrence.com e KUsports.com. Django è il nome del chitarrista jazz Django Reinhardt.

L'orientamento che ha Django nella gestione dei siti di notizie è evidente dal suo design, poiché fornisce un certo numero di funzionalità che facilitano lo sviluppo rapido di applicazioni per la gestione di contenuti. Per esempio, invece che richiedere sviluppatori per la realizzazione di controller e view per aree di amministrazione di un sito, Django fornisce una soluzione integrata di amministrazione dei contenuti che può essere inclusa come parte di ogni sito basato su Django e che può gestire molti siti Django da un'unica installazione. L'applicazione per l'amministrazione permette di creare, aggiornare e eliminare contenuti rappresentati da oggetti tenendo traccia di tutte le operazioni effettuate e fornisce un'interfaccia per la gestione di utenti e gruppi di utenti (inclusa la gestione dei permessi).

La distribuzione principale di Django viene fornita con applicazioni che forniscono un sistema di commenti, funzionalità per la creazione di feed RSS e/o Atom, "pagine semplici" che permettono di essere gestite senza dover scrivere un controller o una view appositi, e funzionalità di redirezione di URL.

Altre funzionalità incluse:

   Astrazione del database relazionale ad oggetti.
   Possibilità di installare funzionalità attraverso plugin.
   Una robusta API per la gestione del database.
   Un sistema di "view generiche" che permette di evitare la stesura di codice per determinati casi comuni.
   Un sistema di template basato su tag con ereditarietà dei template.
   Un gestore di URL basate su espressioni regolari.
   Un sistema "middleware" per lo sviluppo di funzionalità aggiuntive; ad esempio, componenti middleware che forniscono caching, compressione dell'output, normalizzazione dell'output, protezione CSRF e supporto per la sessione sono inclusi nella distribuzione principale di Django.
   Supporto per internazionalizzazione, incluse traduzioni dell'interfaccia amministrativa in svariate lingue.
   Inclusa documentazione accessibile dall'interfaccia amministrativa (compresa documentazione automaticamente generata dai modelli e librerie template aggiunte dalle applicazione).
   Un sistema di gestione degli utenti e della loro autenticazione nella applicazione Web.
   Un sistema per la creazione e la validazione di form HTML.

Mentre Django è influenzato fortemente dalla filosofia di sviluppo Model-View-Controller, i suoi sviluppatori dichiarano pubblicamente che non si sentono in dovere di seguire un particolare paradigma di sviluppo, preferendo invece semplicemente "ciò che sembra giusto". Come risultato, per esempio, ciò che sarebbe chiamato "controller" in un framework MVC classico è chiamato "view" in Django, mentre ciò che dovrebbe essere chiamato "view" è chiamato "template".

Installazione:

Una volta scaricato il file Django-1.6.1.tar.gz lo scompattiamo(il termine spacchettare non mi piace)con il comando tipico tar entriamo nella directory che si e venuta a creare col comando cd e installiamolo con setup.py install.
Ecco l'esempio pratico

tar xzvf Django-1.6.1.tar.gz
cd Django-1.6.1
sudo python setup.py install


adesso per avere la conferma che tutto sia andato per il verso giusto aprite una shell Python e digitate il classico import di Python come da esempio:

>>> import django
>>> django.VERSION
riceverete in output una tupla con la versione installata
(1,0, 'official')

e arrivato il momento di sapere perché abbiamo preferito il .tar.gz all'amichevole apt-get. Installando django con setup.py install possiamo creare la directory del nostro progetto dove meglio ci aggrada al contrario di apt-get che ci costringe(provare per credere)ad una lunga ricerca tra il filesystem per capire dove ha posizionato la directory giusta che contiene django.admin.py.

Ma non solo, installare con setup.py install dovrebbe permetterci di lanciare django.admin.py startproject pommy anche da più parti nel filesystem visto che il setup.py, ci setta django.admin.py già nel path Python e cosi facendo non dovremo creare link simbolici.

Però visto che stiamo operando al computer,(e certe volte accadono cose che non riusciamo a comprendere), nell'eventualità che non vi funzioni a dovere, allora creiamo un link simbolico, rendiamo eseguibile il file con un bel chmod 755 django-admin.py e siamo a posto.

Invece il link simbolico lo creiamo in questa maniera

ln -s /usr/lib/python2.5/site-packages/django/bin/django-admin.py /home/archie (logicamente voi mettete il vostro utente).

Quindi adesso con il comando cd entriamo nella /home/archie(vostro utente) e diamo il comando che crea la nostra directory per l'applicazione django-admin.py startproject pommy(voi chiamatelo come volete) che ci crea la directory pommy più quattro file per settare il nostro progetto che sono __init__.py, manage.py, settings.py, e urls.py.

Adesso spiego brevemente la funzione che questi file hanno. Il file __init__.py altro non è che un file vuoto che permette a python di identificare la directory come packages, il file menage.py contiene una serie di utility per il progetto corrente mentre Settings.py e urls.py non sono altro che dei file di configurazione del progetto Django creato. Esattamente il primo si occupa della configurazione globale del progetto, e il secondo consente di settare gli url del progetto creato in un modo molto pulito e elegante.

Come ho menzionato all'inizio del mini-tutorials, questa è una guida "for Dummies" quindi dei quattro files appena descritti(__init__.py, manage.py, settings.py, e urls.py)ne toccheremo solo uno, e faremo in modo da rendere disponibile un database minimo(sqlite3).
Bene aprite con il vostro editor il file settings.py troverete queste righe di codice

DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (  )
MANAGERS = ADMINS
DATABASE_ENGINE = ''
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''


le uniche aggiunte che dovrete fare sono quelle che vediamo sotto. Sono le stesse righe di codice che vedete sopra ma con le nostre aggiunte che sono il DATABASE_ENGINE con "

DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = ( )
MANAGERS = ADMINS
DATABASE_ENGINE = 'sqlite3' #1°aggiunta
DATABASE_NAME = 'pommydb'   #2°aggiunta
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''

adesso aprite una shell ricercate la directory dove risiede manage.py e avviamo il database con

:~$ python manage.py syncdb

e per finire diamo un bel avvio al nostro server interno del nostro progetto con

:~$ python manage.py runserver

e aprite il vostro browser(rispero Firefox o Opera)e scriviamo http://localhost:8000 diamo INVIO e ammirate la pagina di benvenuto in tutto il suo splendore(eh..eh!!)per terminare il server Control-C.

Un completo tutorial in Ubuntuland & The Dream Valley

Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


Potrebbero interessarti anche :

Possono interessarti anche questi articoli :