Django (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(12 versioni intermedie di 10 utenti non mostrate)
Riga 8:
|DataUltimaVersione =
|SistemaOperativo = Multipiattaforma
|Genere = [[Frameworkweb per applicazioni web]]framework
|Licenza = [[Licenza BSD]]
|Lingua =
Riga 14:
}}
 
'''''Django''''' è un ''[[web framework]]'' con licenza ''[[open source]]'' per lo sviluppo di [[applicazione web|applicazioni ''web'']], scritto in linguaggio ''[[Python]]'', seguendo il paradigma ''model"Model-templateTemplate-view''View".
 
Il progetto è sviluppato dalla "Django Software Foundation" (DSF), un'organizzazione indipendente senza scopo di lucro.<ref>[https://www.djangoproject.com/foundation/ Sito istituzionale del progetto].</ref> Venne concepito inizialmente per gestire diversi siti di notizie per la World Company di [[Lawrence (Kansas)]], e distribuito con una [[Licenze BSD|licenza BSD]] a luglio [[2005]]. Alcuni siti noti che utilizzano questo ''[[framework]]'' sono attualmente [[Pinterest]],<ref>[https://www.quora.com/Pinterest/What-technologies-were-used-to-make-Pinterest Pinterest: Tecnologie alla base di Pinterest].</ref>, [[Instagram]],<ref>{{Cita web|url=http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of|titolo=What Powers Instagram: Hundreds of Instances, Dozens of Technologies}}</ref>, [[Mozilla Foundation|Mozilla]],<ref>[https://developer.mozilla.org/en/Python#Use_of_Python_at_Mozilla Python | MDN] {{Webarchive|url=https://web.archive.org/web/20120208002537/https://developer.mozilla.org/en/Python#Use_of_Python_at_Mozilla |date=8 febbraio 2012 }}.</ref>, ''[[The Washington Times]]'',<ref>[https://opensource.washingtontimes.com/ Home<!-- Titolo generato automaticamente -->] {{Webarchive|url=https://web.archive.org/web/20160315021941/http://opensource.washingtontimes.com/ |datedata=15 marzo 2016 }}.</ref>, ''[[Public Broadcasting Service]]''.<ref name="20sites">{{Cita web|url=http://fearlessflyer.com/2009/11/20-creative-websites-running-django/|titolo=20 Creative Websites Running Django|accesso=21 giugno 2013|dataarchivio=14 giugno 2013|urlarchivio=https://web.archive.org/web/20130614003432/http://fearlessflyer.com/2009/11/20-creative-websites-running-django/|urlmorto=sì}}</ref>, ''[[Bitbucket]]'',<ref name="top">[{{cita web |url=https://www.linkedin.com/pulse/top-10-sites-built-django-framework-vladimir-bogdanov]</ref> e|titolo=Top il10 sitosites dellabuilt with Django Framework |autore=Vladimir Bogdanov |accesso=27 agosto 2025}}</ref>, [[NASA]]<ref>[https://www.djangosites.org/search/?query name=nasa]<"top"/ref>.
Il progetto è sviluppato dalla ''Django Software Foundation'' (DSF), un'organizzazione indipendente senza scopo di lucro<ref>[https://www.djangoproject.com/foundation/ Sito istituzionale del progetto].</ref>. Venne concepito inizialmente per gestire diversi siti di notizie per la ''World Company'' di [[Lawrence (Kansas)]], e distribuito con una [[licenza BSD]] a luglio [[2005]].
 
Alcuni siti noti che utilizzano questo ''[[framework]]'' sono attualmente [[Pinterest]]<ref>[https://www.quora.com/Pinterest/What-technologies-were-used-to-make-Pinterest Pinterest: Tecnologie alla base di Pinterest].</ref>, [[Instagram]]<ref>{{Cita web|url=http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of|titolo=What Powers Instagram: Hundreds of Instances, Dozens of Technologies}}</ref>, [[Mozilla Foundation|Mozilla]]<ref>[https://developer.mozilla.org/en/Python#Use_of_Python_at_Mozilla Python | MDN].</ref>, ''[[The Washington Times]]''<ref>[https://opensource.washingtontimes.com/ Home<!-- Titolo generato automaticamente -->] {{Webarchive|url=https://web.archive.org/web/20160315021941/http://opensource.washingtontimes.com/ |date=15 marzo 2016 }}.</ref>, ''[[Public Broadcasting Service]]''<ref name="20sites">{{Cita web|url=http://fearlessflyer.com/2009/11/20-creative-websites-running-django/|titolo=20 Creative Websites Running Django}}</ref>, ''[[Bitbucket]]''<ref>[https://www.linkedin.com/pulse/top-10-sites-built-django-framework-vladimir-bogdanov]</ref> e il sito della [[NASA]]<ref>[https://www.djangosites.org/search/?query=nasa]</ref>.
 
== Introduzione e funzionalità ==
Django è stato utilizzato internamente per diverso tempo prima di essere distribuito pubblicamente. Fu sviluppato da [[Adrian Holovaty]], [[Simon Willison]], [[Jacob Kaplan-Moss]] e [[Wilson Miner]] mentre lavoravano alla World Company, per la gestione di tre siti di notizie: ''The Lawrence Journal-World'',<ref>[http://www.ljworld.com/ The Lawrence Journal-World].</ref> ''lawrence.com<ref>[http://www.lawrence.com/ lawrence.com].</ref>'' e ''KUsports.com''.<ref>[http://www.kusports.com/ KUsports.com].</ref> È stato chiamato Django in omaggio al 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 Web. Per esempio, invece che richiedere sviluppatori per la realizzazione di ''controller'' e ''view'' per le 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 con 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 controllorecontroller o una vistaview appositi, e funzionalità di redirezione di URL.
 
Altre funzionalità incluse:
* Astrazione delladel base di datidatabase relazionale aad oggetti.
* Possibilità di installare funzionalità attraverso ''[[Plugin (informatica)|plug-inplugin]]''.
* Robusta [[Application Programming Interface|API]] per la gestione delladel [[database|base di dati]].
* Sistema di viste"view generiche" che evitano la stesura di codice ripetitivo per determinati casi comuni.
* Sistema di [[template|modelli]] basato su [[tag (markup)|tag]] con [[ereditarietà]] dei modellitemplate.
* Gestore di URL basate su [[espressione regolare|espressioni regolari]].
* Sistema ''"middleware''" per lo sviluppo di funzionalità aggiuntive; perad esempio, componenti ''middleware'' che forniscono ''[[caching]]'', compressione edell'output, [[normalizzazione (informatica)|normalizzazione]] delle uscitedell'output, protezione [[CSRF]] e supporto per la sessione sono inclusi nella distribuzione principale di Django.
* Supporto per [[localizzazione (software)|localizzazione]], incluse traduzioni dell'interfaccia amministrativa, in molte lingue.
* DocumentazioneInclusa documentazione accessibile dall'interfaccia amministrativa (compresa documentazione automaticamente generata dai modelli e librerie template aggiunte dalle applicazioneapplicazioni).
* Sistema di gestione degli utenti e loro autenticazione nell'applicazione ''web''Web.
* Sistema per la creazione e la validazione di formulari''form'' [[HTML]].
 
Mentre Django è influenzato fortemente dalla filosofia di sviluppo [[Model-View-Controller|modello-vista-controllore]], 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 "controllore''controller''" in un ''framework'' MVC classico in Django è chiamato "vista''view''", mentre ciò che dovrebbe essere chiamato "vista''view''" è chiamato ''"modellotemplate".''
 
== Supporto server ==
Django può essere usato con [[Apache HTTP Server|Apache]], [[nginx]] usando il supporto di [[WSGI]], oppure [[Cherokee]] grazie al modulo Python "flup".<ref>[https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#cherokee-setup Django documentation of deployment Documentazione ufficiale per il deploy] {{webarchive|url=https://web.archive.org/web/20120111101846/https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/ |data=11 gennaio 2012 }}.</ref> Può inoltre usare un server [[FastCGI]], per esempio [[Lighttpd]] o [[Hiawatha]]. Può anche essere usato con qualunque altro server standard [[WSGI]].<ref>[https://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/ Come usare Django con Apache e mod_wsgi] {{webarchive|url=https://web.archive.org/web/20130308055856/https://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/ |data=8 marzo 2013 }}.</ref>
 
Django supporta in modo completo e multipiattaforma quattro tipi di database: [[PostgreSQL]], [[MySQL]], [[SQLite]] e [[Oracle Database|Oracle]]. [[Microsoft SQL Server]] può essere usato solo in ambiente Windows,<ref>[https://bitbucket.org/Manfre/django-mssql/src django-mssql Django e MSSQL].</ref> mentre esistono backend esterni simili per [[IBM DB2]],<ref>{{Cita web|url=https://code.google.com/p/ibm-db/|titolo=ibm-db