FAQ: Generale¶
Perché esiste questo progetto?¶
Django è nato da una necessità assai pratica: World Online, una web operation per giornali, è responsabile per la costruzione di applicazioni web sulla base di deadline relative al giornalismo. Nella newsroom, che si muove con ritmi veloci, World Online spesso ha a disposizione solo delle ore per portare una complicata web application dal un concetto al lancio per il pubblico.
Allo stesso tempo, gli sviluppatori web di World Online sono stati costantemente dei perfezionisti quando si è trattato di seguire le best practice dello sviluppo web.
Nell’autunno del 2003, gli sviluppatori di World Online (Adrian Holovaty and Simon Willison) abbandonarono PHP ed iniziarono ad usare Python per sviluppare i loro siti web. Costruendo siti intensivi e molto interattivi come Lawrence.com, cominciarono ad estrarre un framework per lo sviluppo web generico che gli lasciava costruire applicazioni web sempre più velocemente. Misero a punto questo framework costantemente, aggiungendo miglioramenti nell’arco di due anni.
Nell’estate 2005, World Online decise di rendere open-source il software risultante: Django. Django non sarebbe stato possibile senza un intero gruppo di progetti open-sorce – Apache, Python, e PostgreSQL per nominarne alcuni – e siamo orgogliosi di essere in grado a nostra volta di restituire qualcosa alla comunità open-source.
Cosa significa «Django» e come si pronuncia?¶
Django deriva il suo nome da Django Reinhardt, un chitarrista jazz tzigano che si è esibito dagli anni “30 agli anni “50. Attualmente è considerato uno dei migliori chitarristi di tutti i tempi.
Ascolta la sua musica, ti piacerà.
Django si pronuncia JANG-oh. Fa rima con FANG-oh. La «D» è silenziata.
Abbiamo anche registrato una clip audio della pronuncia.
Django è stabile?¶
Sì, è abbastanza stabile. Alcune aziende come Disqus, Instagram, Pinterest e Mozilla hanno usato Django per diversi anni. Alcuni siti fatti con Django hanno sopportato picchi di traffico di oltre 50 mila richieste al secondo.
Django è adatto per scalare?¶
Sì. Comparato al tempo di sviluppo, l’hardware è economico, quindi Django è progettato per utilizzare il più possibile quanto più hardware gli puoi dare.
Django utilizza una architettura «a condivisione nulla», il che significa che puoi aggiungere hardware ad ogni livello – server di database, server di cache o server web/applicativi.
L’ambiente separa chiaramente le componenti come l’interfaccia al database e quella applicativa. E fornisce un semplice, ma potente cache framework.
Chi c’è dietro a tutto questo?¶
Django è stato originariamente sviluppato in World Online, il dipartimento web di un giornale a Lawrence, in Kansas, negli Stati Uniti d’America. Django ora è gestito da un team di volontari internazionale.
Com’è concesso in licenza Django ?¶
Django è distribuito con the 3-clause BSD license. Questa è una licenza open source che garantisce ampi permessi di modifica e ridistribuzione di Django
Perchè Django include il file di licenza di Python ?¶
Django utilizza codice della libreria standard di Python. Python viene distribuito con una licenza open source permissiva. Una copia della licenza di Python viene inclusa in Django nel rispetto dei termini e condizioni di Python.
Quali siti usano Django?¶
DjangoSites.org contiene una lista crescente di siti che usano Django.
Django sembra essere un framework di tipo MVC ma chiamate le view Controller, mentre la View corrisponde ai «template». Come mai non usate i nomi standard?¶
Bè, i nomi standard sono opinabili.
Nella nostra interpretazione di MVC, la «view» descrive il dato che viene presentato all’utente. Non necessariamente come appare il dato, ma quale dato viene presentato. La view descrive che dato vedi, non come lo vedi. E” una distinzione sottile.
Così, nel nostro caso, una «view» è la funzione Python richiamata per una particolare URL, perché quella funzione di servizio descrive quali dati vengono presentati.
Inoltre, è ragionevole separare i contenuti dalla presentazione – che è l’ambito in cui intervengono i template. In Django, una «view» descrive quale dato viene presentato, ma una view normalmente delega ad un template, che descrive come il dato è presentato.
Quindi, il «controller» come si identifica? Nel caso di Django, probabilmente è l’ambiente stesso: il meccanismo che invia una richiesta alla view appropiata, in accordo alla configurazione delle URL di Django.
Se sei affamato di acronimi, puoi dire che Django è un ambiente «MTV» – cioè: «model», «template», e «view». Questa ripartizione ha molto più senso.
Alla fine della fiera, si tratta di fare delle cose. E, a prescindere da quali siano queste cose, Django le fa nel modo più logico per noi.
Il <Framework X> ha la <caratteristica Y> – perché Django non ce l’ha?¶
Siamo ben consapevoli che ci sono altri bellissimi framework per il web là fuori e non siamo contrari a prendere in prestito alcune delle loro idee, laddove sia appropriato. In ogni caso, Django è stato sviluppato proprio perchè non eravamo felici dello status quo, quindi sii al corrente del fatto che «perchè <Framework X> lo fa» non è una ragione sufficiente per aggiungere una data feature a Django.
Perchè avete scritto Django da zero invece di utilizzare altre biblioteche per Python?¶
Quando Django è stato scritto originariamente, Adrian e Simon hanno passato un bel po” di tempo ad esplorare i vari framework web Python disponibili.
Secondo noi nessuna di esse era idonea.
Siamo esigenti. Puoi anche chiamarci perfezionisti (con le scadenze).
Nel tempo, ci siamo imbattuti in librerie open-source che facevano cose che avevamo già implementato. E” stato rassicurante vedere altre persone risolvere problemi simili in modi simili, ma era troppo tardi per integrare codice esterno: avevamo già scritto, provato e implementato i nostri pezzetti d’ambiente in parecchi contesti di produzione – e il nostro codice serviva egregiamente le nostre necessità.
Comunque, nella maggior parte dei casi abbiamo scoperto che inevitabilmente gli ambienti/strumenti esistenti avevano qualche tipo di fondamentale, fatale difetto. Nessuno strumento si adatta al 100% alle nostre filosofie.
Come abbiamo già detto: siamo esigenti.
Abbiamo documentato le nostre filosofie in design philosophies page.
Django è un CMS (content-management-system)?¶
No, Django non è un CMS o qualche sorta di «prodotto chiavi in mano» di per sè. E” un framework web; è un tool di programmazione che ti fa sviluppare siti web.
Per esempio, non ha molto senso comparare Django a qualcosa come Drupal, perché Django è qualcosa che tu usi per creare oggetti come Drupal.
Sì, la sezione di amministrazione automatica di Django è fantastica e fa risparmiare tempo, ma la sezione di amministrazione è un modulo del framework Django. Inoltre, sebbene Django abbia vantaggi speciali per la creazione di app «CMS-y», ciò non significa che non sia altrettanto appropriato per la creazione di app «non-CMS-y» (qualunque cosa significhi!).
Come posso scaricare la documentazione di Django così da averla disponibile senza accesso a internet?¶
La documentazione di Django è disponibile della directory docs
di ogni release tarball di Django. Questa documentazione è in formato reST (reStructuredText) ed ogni file corrisponde ad una pagina web sul sito ufficiale di Django.
Dal momento che la documentazione viene tenuta in un sistema di versionamento, puoi controllare i cambiamenti e sfogliarla come puoi farlo con i cambiamenti di un codice sorgente.
Tecnicamente, i documenti nel sito di Django sono generati dalle ultime versioni di sviluppo di quei documenti reST, perciò i documenti nel sito di Django possono avere più informazione dei documenti che accompagnano l’ultimo rilascio di Django.
Come posso citare Django?¶
E” difficile dare un formato ufficiale per le citazioni, per due motivi: i formati per le citazioni possono variare largamente tra le pubblicazioni, e gli standard per le citazioni del software sono ancora materia di dibattito.
For example, APA style, would dictate something like:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://www.djangoproject.com/.
Comunque, l’unica vera linea guida è ciò che sarà accettato dal tuo editore, quindi prendi una copia delle sue linee guida e riempi le mancanze come meglio puoi.
Se le linee guida cui fai riferimento richiedono il nome dell’editore, usa «Django Software Foundation».
Se hai necessità del luogo della pubblicazione, usa «Lawrence, Kansas».
Se hai bisogno di un indirizzo web, usa https://www.djangoproject.com/.
Se hai bisogno di un nome usa «Django», senza nessuno slogan.
Se ti serve la data di pubblicazione, usa l’anno di rilascio della versione cui fai riferimento (ad esempio, 2013 per v1.5)