Django (marc web)
![]() ![]() | |
![]() ![]() | |
Tipus | entorn de treball per a aplicacions web ![]() |
---|---|
Versió inicial | 2004 ![]() |
Versió estable | |
Llicència | llicència BSD de 3 clàusules ![]() |
Epònim | Django Reinhardt ![]() |
Característiques tècniques | |
Sistema operatiu | multiplataforma ![]() |
Escrit en | Python ![]() |
Biblioteca d'interfície d'usuari | interfície d'usuari web ![]() |
Equip | |
Desenvolupador(s) | Django Software Foundation (en) ![]() ![]() |
Més informació | |
Lloc web | djangoproject.com (anglès) ![]() |
Stack Exchange | Etiqueta ![]() |
Free Software Directory | Django ![]() |
Id. Subreddit | django ![]() |
| |
Django[1] é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).[2][3] 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.[4] 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,[5] Mozilla,[6] Disqus,[7] Bitbucket,[8] Nextdoor,[9] i Clubhouse.[10]
Història
[modifica]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.[11] 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.[12] Holovaty és un guitarrista de jazz romaní inspirat en part en la música de Reinhardt.[13]
El juny de 2008, es va anunciar que una nova Django Software Foundation (DSF) mantindria Django en el futur.[14]
Característiques
[modifica]Components
[modifica]
Tot i tenir la seva pròpia nomenclatura, com ara anomenar els objectes invocables que generen les "visualitzacions" de les respostes HTTP, [15] el marc bàsic de Django es pot veure com una arquitectura MVC.[16] 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
[modifica]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 [17][18]
- un marc per crear aplicacions de sistemes d'informació geogràfica (SIG).
Referències
[modifica]- ↑ «FAQ: General - Django documentation - Django» (en anglès). [Consulta: 30 abril 2016].
- ↑ «FAQ: General - Django documentation - Django» (en anglès). [Consulta: 30 abril 2016].
- ↑ Adrian Holovaty, Jacob Kaplan-Moss. The Django Book (en anglès).
- ↑ «Design Philosophies» (en anglès). Django. [Consulta: 18 març 2018].
- ↑ «What Powers Instagram: Hundreds of Instances, Dozens of Technologies» (en anglès). Instagram Engineering.
- ↑ «Python» (en anglès). Mozilla Developer Network. Arxivat de l'original el 8 February 2012. [Consulta: 30 abril 2016].
- ↑ Robenolt, Matt. «Scaling Django to 8 Billion Page Views» (en anglès). blog.disqus.com.
- ↑ «DjangoSuccessStoryBitbucket – Django» (en anglès). Arxivat de l'original el 20 April 2016. [Consulta: 30 abril 2016].
- ↑ «The anti-Facebook: one in four American neighborhoods are now using this private social network» (en anglès). The Verge, 18-08-2014. [Consulta: 16 juny 2016].
- ↑ Demi, Luke. «Reining in the thundering herd ⛈ Getting to 80% CPU utilization with Django» (en anglès). Clubhouse Blog, 15-08-2021. [Consulta: 16 agost 2021].
- ↑ Error: hi ha arxiuurl o arxiudata, però calen tots dos paràmetres.Willison, Simon. «[Simon Willison What is the history of the Django web framework? Why has it been described as "developed in a newsroom"?]» (en anglès). Quora. [Consulta: 18 octubre 2019].
- ↑ «Introducing Django» (en anglès). The Django Book. Arxivat de l'original el 29 July 2018. [Consulta: 29 juliol 2018].
- ↑ «Review: Adrian Holovaty's Playful and Precise 'Melodic Guitar Music'» (en anglès). Acoustic Guitar, 12-12-2023. Arxivat de l'original el 30 December 2023.
- ↑ «Announcing the Django Software Foundation - Weblog - Django» (en anglès). [Consulta: 30 abril 2016].
- ↑ «FAQ: General - Django documentation - Django» (en anglès). [Consulta: 30 abril 2016].
- ↑ Adrian Holovaty, Jacob Kaplan-Moss. The Django Book (en anglès).
- ↑ «Security in Django» (en anglès). Django Project. [Consulta: 25 març 2013].
- ↑ Socol, James. «Best Basic Security Practices (Especially with Django)» (en anglès). [Consulta: 25 març 2013].