• 3.2
  • dev
  • Documentation version: 4.0

FAQ: Generale

Perché esiste questo progetto?

Django grew from a very practical need: World Online, a newspaper web operation, is responsible for building intensive web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated web application from concept to public launch.

At the same time, the World Online web developers have consistently been perfectionists when it comes to following best practices of web development.

In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) ditched PHP and began using Python to develop its websites. As they built intensive, richly interactive sites such as Lawrence.com, they began to extract a generic web development framework that let them build web applications more and more quickly. They tweaked this framework constantly, adding improvements over two years.

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 uses a «shared-nothing» architecture, which means you can add hardware at any level – database servers, caching servers or web/application servers.

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 was originally developed at World Online, the web department of a newspaper in Lawrence, Kansas, USA. Django’s now run by an international team of volunteers.

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?

We’re well aware that there are other awesome web frameworks out there, and we’re not averse to borrowing ideas where appropriate. However, Django was developed precisely because we were unhappy with the status quo, so please be aware that «because <Framework X> does it» is not going to be sufficient reason to add a given feature to Django.

Perchè avete scritto Django da zero invece di utilizzare altre biblioteche per Python?

When Django was originally written, Adrian and Simon spent quite a bit of time exploring the various Python web frameworks available.

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 is not a CMS, or any sort of «turnkey product» in and of itself. It’s a web framework; it’s a programming tool that lets you build websites.

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?

The Django docs are available in the docs directory of each Django tarball release. These docs are in reST (reStructuredText) format, and each text file corresponds to a web page on the official Django site.

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)

Back to Top