FAQ: Generale¶
Perché esiste questo progetto?¶
Django è nato da una necessità pratica: World Online, un progetto Web per un giornale, è responsabile della costruzione di applicazioni Web intensive con scadenze di pubblicazione. Nella concitazione della redazione, World Online spesso ha solo poche ore per portare una complessa applicazione Web dalla concettualizzazione alla sua messa in produzione.
Allo stesso tempo, gli sviluppatori Web di World Online sono stati costantemente dei perfezionisti quando si è trattato di seguire le migliori pratiche di sviluppo Web.
Nell’autunno 2003, gli sviluppatori di World Online (Adrian Holovaty e Simon Willison) abbandonarono PHP e cominciarono ad usare Python per sviluppare il suo sito Web. mentre sviluppavano siti intensivi, riccamente interattivi, come Lawrence.com, cominciarono ad estrarre un ambiente di sviluppo Web che li metteva in grado di sviluppare applicazioni Web sempre più rapidamente. Affinarono questo ambiente costantemente, aggiungendo potenziamenti ogni 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 usa una architettura «senza condivisione»; 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 fu inizialmente sviluppato presso World Online, l’area Web di un giornale situato a Lawrence, Kansas, USA. Django ora vive grazie ad un team internazionale di volontari <https://www.djangoproject.com/foundation/teams/>`_
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 consapevoli che ci sono altri ottimi web framework lì fuori e non siamo contrari a prendere in prestito alcune idee quando sono appropriate. Comunque Django è stato sviluppato precisamente perchè non eravamo contenti dello status quo, quindi tieni a mente che «perchè il <Framework X> fa questo» non sarà una motivazione valida per aggiungere una data caratteristica a Django.
Perchè avete scritto Django da zero invece di utilizzare altre biblioteche per Python?¶
Quando Django fu scritto, Adrian e Simon passarono molto tempo a valutare i web frameworks scritti in 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 un qualunque tipo di «prodotto chiavi in mano». E” un ambiente di sviluppo Web; uno strumento di programmazione che ti permette di costruire 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 nella directory docs
di ogni archivio di rilascio di Django. Questi documenti sono in formato reST (reStructuredText), e ogni file di testo corrisponde a una pagina Web del 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.
Per esempio, APA style, potrebbe indicare qualcosa come:
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)