Django és un marc web gratuït i de codi obert basat en Python que s'executa en un servidor web. Segueix el patró arquitectònic model–template–views (MTV). El manté la Django Software Foundation (DSF), una organització independent establerta als EUA com a 501(c)(3) sense ànim de lucre.

L'objectiu principal de Django és facilitar la creació de llocs web complexos basats en bases de dades. El marc posa l'accent en la reutilització i la "connectabilitat" dels components, menys codi, baix acoblament, desenvolupament ràpid i el principi de no repetir-se. Python s'utilitza a tot arreu, fins i tot per a la configuració, els fitxers i els models de dades. Django també proporciona una interfície administrativa opcional de creació, lectura, actualització i supressió que es genera de manera dinàmica mitjançant la introspecció i es configura mitjançant models d'administració.

Alguns llocs coneguts que utilitzen Django inclouen Instagram, Mozilla, Disqus, Bitbucket, Nextdoor, i Clubhouse.

Història Django es va crear a la tardor de 2003, quan els programadors web del diari Lawrence Journal-World, Adrian Holovaty i Simon Willison, van començar a utilitzar Python per crear aplicacions. Jacob Kaplan-Moss va ser contractat al principi del desenvolupament de Django poc abans que acabés les pràctiques de Willison. Va ser llançat públicament sota una llicència BSD el juliol de 2005. El marc va rebre el nom del guitarrista Django Reinhardt. Holovaty és un guitarrista de jazz romaní inspirat en part en la música de Reinhardt.

El juny de 2008, es va anunciar que una nova Django Software Foundation (DSF) mantindria Django en el futur.

Característiques Components miniatura|Captura de pantalla de la interfície d'administració de Django per modificar un compte d'usuari Tot i tenir la seva pròpia nomenclatura, com ara anomenar els objectes invocables que generen les "visualitzacions" de les respostes HTTP, el marc bàsic de Django es pot veure com una arquitectura MVC. Consisteix en un mapeador relacional d'objectes (ORM) que media entre els models de dades (definits com a classes Python) i una base de dades relacional ("Model"), un sistema per processar sol·licituds HTTP amb un sistema de plantilles web ("Visualització") i un distribuïdor d'URL basat en expressions regulars ("Controlador").

També s'inclouen al marc bàsic:

un servidor web lleuger i autònom per al desenvolupament i proves un sistema de serialització i validació de formularis que es pot traduir entre formularis HTML i valors adequats per a l'emmagatzematge a la base de dades un sistema de plantilles que utilitza el concepte d'herència manllevat de la programació orientada a objectes un marc de memòria cau que pot utilitzar qualsevol dels diversos mètodes de memòria cau suport per a classes de middleware que poden intervenir en diverses etapes de processament de sol·licituds i realitzar funcions personalitzades un sistema de distribuïdor intern que permet que els components d'una aplicació es comuniquin esdeveniments entre ells mitjançant senyals predefinits un sistema d'internacionalització, que inclou traduccions dels components propis de Django a una varietat d'idiomes un sistema de serialització que pot produir i llegir representacions XML i/o JSON de les instàncies del model Django un sistema per ampliar les capacitats del motor de plantilles una interfície per al marc de prova d'unitat integrat de Python

Aplicacions agrupades La distribució principal de Django també inclou una sèrie d'aplicacions al seu paquet "contrib", que inclouen:

un sistema d'autenticació extensible la interfície administrativa dinàmica eines per generar fluxos de sindicació RSS i Atom un marc "Llocs" que permet que una instal·lació de Django executi diversos llocs web, cadascun amb el seu propi contingut i aplicacions eines per generar mapes del lloc mitigació integrada per a la falsificació de sol·licituds entre llocs, scripts entre llocs, injecció SQL, trencament de contrasenyes i altres atacs web típics, la majoria d'ells activats per defecte

un marc per crear aplicacions de sistemes d'informació geogràfica (SIG).

Referències

Categoria:Python Categoria:Programari lliure