Articulo de referencia

Django (framework web)

{{cite web |title = django/README |url = https://github.com/django/django/blob/master/README.rst |website = GitHub |access-date=8 September 2020}} "},"released":{"wt":"{{Start d...

Django ( / ˈ æ ŋ ɡ / JANG -goh ; a veces estilizado como django ) [ 6 ] es un marco web gratuito y de código abierto , basado en Python , que se ejecuta en un servidor web . Sigue el patrón arquitectónico modelo-plantilla-vistas (MTV) . [ 7 ] [ 8 ] Es mantenido por la Django Software Foundation (DSF), una organización independiente establecida en los EE. UU. como una organización sin fines de lucro 501(c)(3) .

El objetivo principal de Django es facilitar la creación de sitios web complejos basados ​​en bases de datos . El framework enfatiza la reutilización y la "extensibilidad" de componentes, menos código, bajo acoplamiento , desarrollo rápido y el principio de no repetir código . [ 9 ] Python se utiliza en todo el framework, incluso para configuraciones, archivos y modelos de datos . Django también proporciona una interfaz administrativa opcional para crear, leer, actualizar y eliminar, que se genera dinámicamente mediante introspección y se configura a través de modelos de administración.

Algunos sitios conocidos que utilizan Django incluyen Instagram , [ 10 ] Mozilla , [ 11 ] Disqus , [ 12 ] Bitbucket , [ 13 ] Nextdoor , [ 14 ] y Clubhouse . [ 15 ]

Historia

Django se creó en otoño de 2003, cuando los programadores web del periódico Lawrence Journal-World , Adrian Holovaty y Simon Willison , comenzaron a usar Python para crear aplicaciones. Jacob Kaplan-Moss fue contratado al principio del desarrollo de Django, poco antes de que terminara la pasantía de Willison. [ 16 ] Se lanzó públicamente bajo una licencia BSD en julio de 2005. El framework recibió su nombre del guitarrista Django Reinhardt . [ 17 ] Holovaty es un guitarrista de jazz romaní inspirado en parte por la música de Reinhardt. [ 18 ]

En junio de 2008, se anunció que una recién formada Fundación de Software Django (DSF) se encargaría del mantenimiento de Django en el futuro. [ 19 ]

Características

Componentes

Captura de pantalla de la interfaz de administración de Django para modificar una cuenta de usuario.

A pesar de tener su propia nomenclatura, como llamar "vistas" a los objetos invocables que generan las respuestas HTTP , [ 7 ] el núcleo del framework Django puede considerarse una arquitectura MVC . [ 8 ] Consta de un mapeador objeto-relacional (ORM) que media entre los modelos de datos (definidos como clases de Python) y una base de datos relacional (" Modelo "), un sistema para procesar solicitudes HTTP con un sistema de plantillas web (" Vista ") y un despachador de URL basado en expresiones regulares (" Controlador ").

El marco principal también incluye:

  • un servidor web ligero e independiente para desarrollo y pruebas
  • un sistema de serialización y validación de formularios que puede traducir entre formularios HTML y valores adecuados para su almacenamiento en la base de datos.
  • un sistema de plantillas que utiliza el concepto de herencia tomado de la programación orientada a objetos.
  • un marco de almacenamiento en caché que puede utilizar cualquiera de varios métodos de caché.
  • Compatibilidad con clases de middleware que pueden intervenir en diversas etapas del procesamiento de solicitudes y realizar funciones personalizadas.
  • un sistema de despacho interno que permite que los componentes de una aplicación se comuniquen entre sí mediante señales predefinidas.
  • un sistema de internacionalización , que incluye traducciones de los propios componentes de Django a una variedad de idiomas.
  • un sistema de serialización que puede producir y leer representaciones XML y/o JSON de instancias de modelos de Django
  • un sistema para ampliar las capacidades del motor de plantillas
  • una interfaz para el marco de pruebas unitarias integrado de Python

Aplicaciones agrupadas

La distribución principal de Django también incluye varias aplicaciones en su paquete "contrib", entre las que se incluyen:

Extensibilidad

El sistema de configuración de Django permite integrar código de terceros en un proyecto regular, siempre que cumpla con las convenciones de aplicaciones reutilizables [ 22 ] . Hay más de 5000 paquetes [ 23 ] disponibles para extender el comportamiento original del framework, proporcionando soluciones a problemas que la herramienta original no abordaba: registro, búsqueda, provisión y consumo de API , CMS , etc.

Esta extensibilidad, sin embargo, se ve atenuada por las dependencias de los componentes internos. Si bien la filosofía de Django implica un acoplamiento flexible, [ 24 ] los filtros y etiquetas de las plantillas asumen una única implementación del motor, y tanto las aplicaciones empaquetadas de autenticación como las de administración requieren el uso del ORM interno . Ninguno de estos filtros o aplicaciones empaquetadas es obligatorio para ejecutar un proyecto Django, pero las aplicaciones reutilizables tienden a depender de ellos, lo que anima a los desarrolladores a seguir utilizando la pila oficial para beneficiarse plenamente del ecosistema de aplicaciones. [ 25 ]

Disposición de los servidores

Django puede ejecutarse en servidores web compatibles con ASGI o WSGI . [ 26 ] Django admite oficialmente cinco bases de datos: PostgreSQL , MySQL , MariaDB , SQLite y Oracle . [ 27 ] Microsoft SQL Server puede utilizarse con mssql-django.

Historial de versiones

El equipo de Django designará ocasionalmente ciertas versiones como versiones de "soporte a largo plazo" (LTS). [ 28 ] Las versiones LTS recibirán correcciones de seguridad y de pérdida de datos durante un período de tiempo garantizado, normalmente más de 3 años, independientemente del ritmo de las versiones posteriores.

Comunidad

DjangoCon

Existe una conferencia semestral para desarrolladores y usuarios de Django, llamada "DjangoCon", que se celebra desde septiembre de 2008. DjangoCon se celebra anualmente en Europa, en mayo o junio; [ 61 ] mientras que otra se celebra en Estados Unidos en agosto o septiembre, en varias ciudades. [ 62 ]

Estados Unidos

La DjangoCon 2012 tuvo lugar en Washington, DC, del 3 al 8 de septiembre.

La DjangoCon 2013 se celebró en Chicago, en el hotel Hyatt Regency, y los Sprints posteriores a la conferencia se llevaron a cabo en Digital Bootcamp, un centro de formación informática. [ 63 ]

La DjangoCon US 2014 regresó a Portland , Oregón, del 30 de agosto al 6 de septiembre.

La DjangoCon US 2015 se celebró en Austin , Texas, del 6 al 11 de septiembre en el AT&T Executive Center.

La DjangoCon US 2016 se celebró en Filadelfia, Pensilvania, en la Escuela Wharton de la Universidad de Pensilvania del 17 al 22 de julio. [ 64 ]

La DjangoCon US 2017 se celebró en Spokane, WA; [ 65 ] en 2018 la DjangoCon US se celebró en San Diego, CA. [ 66 ] La DjangoCon US 2019 se celebró de nuevo en San Diego, CA del 22 al 27 de septiembre.

DjangoCon 2021 se celebró virtualmente y en 2022, DjangoCon US regresó a San Diego del 16 al 21 de octubre. DjangoCon US 2023 se celebró del 16 al 20 de octubre en el centro de convenciones de Durham , Carolina del Norte, y DjangoCon US 2024 también tuvo lugar en Durham del 22 al 27 de septiembre. [ 67 ] [ 68 ]

DjangoCon US 2025 se celebró del 8 al 12 de septiembre en Chicago, Illinois. [ 69 ]

Europa

Australia

Las miniconferencias de Django se celebran habitualmente cada año como parte de la Conferencia Australiana de Python 'PyCon AU'. [ 85 ] Anteriormente, estas miniconferencias se han celebrado en:

  • Hobart , Australia, en julio de 2013,
  • Brisbane , Australia, en agosto de 2014 y 2015,
  • Melbourne , Australia en agosto de 2016 y 2017, y
  • Sídney , Australia, en agosto de 2018 y 2019.

África

La primera DjangoCon Africa se celebró en Zanzíbar, Tanzania, del 6 al 11 de noviembre de 2023. [ 86 ] El evento contó con la asistencia de aproximadamente 200 personas de 22 países, incluyendo 103 mujeres. La conferencia incluyó 26 ponencias sobre temas como desarrollo de software, educación, carreras profesionales, accesibilidad y agricultura, destacando a menudo perspectivas de todo el continente africano. Se planean futuras ediciones de la conferencia; los detalles están disponibles en el sitio web oficial.

Grupos y programas comunitarios

Django ha generado grupos de usuarios y encuentros en todo el mundo; un grupo notable es la organización Django Girls , que comenzó en Polonia pero ahora ha tenido eventos en 91 países. [ 87 ] [ 88 ] [ 89 ]

Otra iniciativa es Djangonaut Space, [ 90 ] un programa de mentoría destinado a apoyar a los nuevos colaboradores del ecosistema Django. El programa empareja a mentores experimentados con desarrolladores para guiarlos en la realización de contribuciones significativas a Django y su comunidad. Hace hincapié en el compromiso a largo plazo, la inclusión y el desarrollo colaborativo de código abierto.

Versiones para otros idiomas

Los programadores han adaptado el diseño del motor de plantillas de Django de Python a otros lenguajes, proporcionando una compatibilidad multiplataforma aceptable. Algunas de estas opciones son adaptaciones más directas; otras, aunque inspiradas en Django y conservando sus conceptos, se permiten ciertas diferencias en su diseño.

Sistemas de gestión de contenido (CMS) basados ​​en el framework Django.

Django, como framework, es capaz de construir un CMS completo . Algunos proyectos de CMS específicos se basan en Django:

Véase también

Referencias

  1. 1 2 3 "django/README" . GitHub . Consultado el 8 de septiembre de 2020 .
  2. "Preguntas frecuentes sobre Django" . Consultado el 27 de marzo de 2019 .
  3. "Versión 6.0" . 3 de diciembre de 2025. Consultado el 3 de diciembre de 2025 .
  4. "Versión 5.2.9" . 2 de diciembre de 2025. Consultado el 3 de diciembre de 2025 .
  5. "django/LICENSE" . GitHub . Consultado el 8 de septiembre de 2020 .
  6. "Preguntas frecuentes: General - Documentación de Django - Django" . Consultado el 30 de abril de 2016 .
  7. 1 2 "Preguntas frecuentes: General - Documentación de Django - Django" . Consultado el 30 de abril de 2016 .
  8. 1 2 Adrian Holovaty, Jacob Kaplan-Moss; et al. The Django Book . Archivado del original el 2 de septiembre de 2016. Recuperado el 3 de septiembre de 2013. Django sigue este patrón MVC lo suficientemente de cerca como para que se le pueda llamar un framework MVC. 
  9. "Filosofías de diseño" . Django . Consultado el 18 de marzo de 2018 .
  10. "Qué impulsa Instagram: cientos de instancias, docenas de tecnologías" . Ingeniería de Instagram .
  11. "Python" . Red de desarrolladores de Mozilla . Archivado del original el 8 de febrero de 2012. Consultado el 30 de abril de 2016 .
  12. Robenolt, Matt. "Escalando Django a 8 mil millones de páginas vistas" . blog.disqus.com .
  13. "DjangoSuccessStoryBitbucket – Django" . Archivado del original el 20 de abril de 2016. Consultado el 30 de abril de 2016 .
  14. "El anti-Facebook: uno de cada cuatro barrios estadounidenses ya utiliza esta red social privada" . The Verge . 18 de agosto de 2014. Consultado el 16 de junio de 2016 .
  15. Demi, Luke (15 de agosto de 2021). "Controlando la manada atronadora ⛈ Logrando un 80 % de utilización de CPU con Django" . Blog de Clubhouse . Recuperado el 16 de agosto de 2021 .
  16. Willison, Simon . "¿Cuál es la historia del framework web Django? ¿Por qué se ha descrito como "desarrollado en una sala de redacción"?" . Quora . Consultado el 18 de octubre de 2019 .
  17. "Introducción a Django" . El libro de Django. Archivado del original el 29 de julio de 2018. Consultado el 29 de julio de 2018 .
  18. "Reseña: La 'Música de guitarra melódica', lúdica y precisa, de Adrian Holovaty"Guitarra acústica . 12 de diciembre de 2023. Archivado del original el 30 de diciembre de 2023 .
  19. "Anuncio de la Fundación de Software Django - Blog - Django" . 17 de junio de 2008. Consultado el 30 de abril de 2016 .
  20. "Seguridad en Django" . Proyecto Django . Consultado el 25 de marzo de 2013 .
  21. Socol, James (2012). "Mejores prácticas básicas de seguridad (especialmente con Django)" . Recuperado el 25 de marzo de 2013 .
  22. "¿Qué es una aplicación reutilizable? — Documentación de django-reusable-app-docs 0.1.0" . Consultado el 30 de abril de 2016 .
  23. "Lista de paquetes de la API de Django Packages" . Consultado el 17 de abril de 2023 .
  24. "Filosofías de diseño - Documentación de Django - Django" . Archivado del original el 4 de marzo de 2016. Consultado el 30 de abril de 2016 .
  25. "Etiquetas y filtros de plantilla integrados" . djangoproject . Consultado el 6 de agosto de 2025 .
  26. Cómo desplegar Django . Documentación oficial de Django.
  27. "Documentación de Django" . Documentación de Django . Consultado el 23 de febrero de 2025 .
  28. "Proceso de lanzamiento de Django - Documentación de Django - Django" . Consultado el 23 de febrero de 2025 .
  29. "Descargar Django - Django" . www.djangoproject.com .
  30. "Preguntas frecuentes: Instalación - Documentación de Django - Django" . docs.djangoproject.com .
  31. "Presentación de Django 0.90" . Blog de Django. Consultado el 2 de febrero de 2013.
  32. "Django 0.91 lanzado" . Blog de Django. Consultado el 2 de febrero de 2013.
  33. "Presentando Django 0.95" . Blog de Django. Consultado el 2 de febrero de 2013.
  34. "¡Anunciamos Django 0.96!" . Blog de Django. Consultado el 2 de febrero de 2013.
  35. "¡Django 1.0 lanzado!" . Blog de Django. Consultado el 2 de febrero de 2013.
  36. "Django 1.1 lanzado" . Blog de Django. Consultado el 2 de febrero de 2013.
  37. "Django 1.2 lanzado" . Blog de Django. Consultado el 2 de febrero de 2013.
  38. "Django 1.3 lanzado" . Blog de Django. Consultado el 2 de febrero de 2013.
  39. "Django 1.4 lanzado" . Blog de Django. Consultado el 2 de febrero de 2013.
  40. "Django 1.5 lanzado" Blog de Django. Consultado el 27 de febrero de 2013.
  41. "Django 1.6 lanzado" Blog de Django. Consultado el 6 de noviembre de 2013.
  42. "Django 1.7 lanzado" Blog de Django. Consultado el 4 de septiembre de 2014.
  43. "Django 1.8 lanzado" Blog de Django. Consultado el 2 de abril de 2015.
  44. "Django 1.9 lanzado" Blog de Django. Consultado el 1 de diciembre de 2015.
  45. "Django 1.10 lanzado" Blog de Django. Consultado el 1 de agosto de 2016.
  46. "Django 1.11 lanzado" Blog de Django. Consultado el 4 de abril de 2017.
  47. "Django 2.0 lanzado" Blog de Django. Consultado el 3 de diciembre de 2017.
  48. "Django 2.1 lanzado" Blog de Django. Consultado el 2 de agosto de 2018.
  49. Notas de la versión 2.2 de Django . Consultado el 1 de julio de 2019.
  50. Notas de la versión 3.0 de Django . Consultado el 2 de diciembre de 2019.
  51. Notas de la versión 3.1 de Django . Consultado el 5 de agosto de 2020.
  52. "Notas de la versión 3.2 de Django" . 6 de abril de 2021. Consultado el 7 de junio de 2021 .
  53. "Notas de la versión de Django 4.0" . 7 de diciembre de 2021. Consultado el 4 de agosto de 2022 .
  54. "Notas de la versión 4.1 de Django" . 3 de agosto de 2022. Consultado el 4 de agosto de 2022 .
  55. "Notas de la versión 4.2 de Django" . Consultado el 4 de agosto de 2022 .
  56. "Notas de la versión de Django 5.0" . 4 de diciembre de 2023. Consultado el 4 de diciembre de 2023 .
  57. "Notas de la versión 5.1 de Django" . 7 de agosto de 2024. Consultado el 8 de agosto de 2024 .
  58. "Notas de la versión 5.2 de Django" . 2 de abril de 2025. Consultado el 23 de febrero de 2025 .
  59. "Hoja de ruta de Django 6.0" . Diciembre de 2025. Consultado el 23 de febrero de 2025 .
  60. "Notas de la versión 6.0 de Django" . Proyecto Django . 3 de diciembre de 2025. Consultado el 3 de diciembre de 2025 .
  61. Serie DjangoCon EU Archivada el 4 de marzo de 2016 en Wayback Machine , Lanyrd.com
  62. Serie DjangoCon US archivada el 2 de abril de 2016 en Wayback Machine , Lanyrd.com
  63. "DjangoCon" . DjangoCon. Archivado del original el 5 de agosto de 2012. Consultado el 29 de julio de 2012 .
  64. "DjangoCon" . DjangoCon . Consultado el 1 de diciembre de 2016 .
  65. "DjangoCon" . DjangoCon.
  66. "DjangoCon" . DjangoCon.
  67. "Acerca de DjangoCon US 2023" . DjangoCon US . Consultado el 17 de julio de 2024 .
  68. "Acerca de DjangoCon US" . DjangoCon US . Consultado el 17 de julio de 2024 .
  69. EE. UU., DjangoCon (9 de julio de 2025). "DjangoCon EE. UU. 2025" . DjangoCon EE. UU . Consultado el 20 de julio de 2025 .
  70. Kaplan-Moss, Jacob. "EuroDjangoCon 2009" . Django . Django Software Foundation . Consultado el 30 de junio de 2026 .
  71. Zapke-Gründemann, Markus. "DjangoCon Europe, 24. - 26.5.2010 en Berlín" . Google Groups . Consultado el 30 de junio de 2026 .
  72. Keith-Magee, Russell. "Se anuncia DjangoCon Europe 2011" . Django . Django Software Foundation . Consultado el 30 de junio de 2026 .
  73. "Inicio - 2012.djangocon.eu" . 2012.djangocon.eu . Consultado el 20 de julio de 2025 .
  74. "DjangoCon Europe 2015 en Cardiff, Gales" . 2015.djangocon.eu . Archivado del original el 7 de diciembre de 2015. Consultado el 1 de julio de 2026 .
  75. "DjangoCon Europe 2016" . 2016.djangocon.eu . Archivado del original el 5 de diciembre de 2017. Consultado el 1 de julio de 2026 .
  76. "DjangoCon Europe 2018" . 2018.djangocon.eu . Consultado el 20 de julio de 2025 .
  77. "Únete a nosotros en Copenhague del 10 al 14 de abril 🚲 • DjangoCon Europe 2019" . 2019.djangocon.eu . Consultado el 20 de julio de 2025 .
  78. "DjangoCon Europe 2020" . 2020.djangocon.eu . Consultado el 20 de julio de 2025 .
  79. "DjangoCon Europe 2021" . 2021.djangocon.eu . Consultado el 20 de julio de 2025 .
  80. "DjangoCon Europe 2022" . 2022.djangocon.eu . Consultado el 20 de julio de 2025 .
  81. Europa, DjangoCon. "DjangoCon EU 2023 • 29 de mayo - 2 de junio de 2023 • Edimburgo, Escocia" . DjangoCon Europe . Consultado el 20 de julio de 2025 .
  82. "DjangoCon Europe 2024" . 2024.djangocon.eu . Consultado el 20 de julio de 2025 .
  83. "DjangoCon Europe 2025" . 2025.djangocon.eu . Consultado el 20 de julio de 2025 .
  84. DjangoCon Europe 2026 https://2026.djangocon.eu/ . Consultado el 30 de junio de 2026 .{{cite web}}: Falta o está vacío |title=( ayuda )
  85. DjangoCon AU . Djangocon.com.au. Consultado el 16 de diciembre de 2019.
  86. "DjangoCon Africa 2025" . 2025.djangocon.africa . Consultado el 20 de julio de 2025 .
  87. "Django, originario de Lawrence, que revolucionó la creación de sitios web, celebra su décimo aniversario" . Lawrence Journal-World . 9 de julio de 2015. Consultado el 18 de octubre de 2019 .
  88. "Django Girls - comienza tu viaje con la programación" . Consultado el 21 de octubre de 2019 .
  89. "Grupos de Django" . Reunión .
  90. "Djangonaut Space - ¡Donde los colaboradores lanzan sus proyectos!" . djangonaut.space . Consultado el 20 de julio de 2025 .
  91. Shopify. "– Lenguaje de plantillas Liquid" . Lenguaje de plantillas Liquid .
  92. "Template::Swig - Interfaz Perl para el motor de plantillas Swig inspirado en Django. - metacpan.org" . metacpan.org .
  93. Symfony. "Inicio - Twig - El motor de plantillas PHP flexible, rápido y seguro" . twig.sensiolabs.org . Archivado del original el 9 de julio de 2017. Consultado el 10 de diciembre de 2014 .
  94. "twigjs/twig.js" . GitHub .
  95. "Bienvenido - Jinja2 (El motor de plantillas de Python)" . jinja.pocoo.org .
  96. "erlydtl/erlydtl" . GitHub .
  97. "django CMS - Gestión de contenido empresarial con Django - django CMS" . www.django-cms.org . Consultado el 11 de noviembre de 2020 .

Bibliografía

  • Jaiswal, Sanjeev; Kumar, Ratan (22 de junio de 2015), Aprendizaje del desarrollo web con Django (1.ª  ed.), Packt, pág.  405, ISBN 978-1783984404
  • Ravindrun, Arun (31 de marzo de 2015), Patrones de diseño y mejores prácticas de Django (1.ª  ed.), Packt, pág.  180, ISBN 978-1783986644
  • Osborn, Tracy (mayo de 2015), Hello Web App (1.ª  ed.), Tracy Osborn, pág.  142, ISBN 978-0986365911
  • Bendoraitis, Aidas (octubre de 2014), Web Development with Django Cookbook (1.ª  ed.), Packt, pág.  294, ISBN 978-1783286898
  • Baumgartner, Peter; Malet, Yann (2015), High Performance Django (1.ª  ed.), Lincoln Loop, pág.  184, ISBN 978-1508748120
  • Elman, Julia; Lavin, Mark (2014), Lightweight Django (1.ª  ed.), O'Reilly Media, pág.  246, ISBN 978-1491945940
  • Percival, Harry (2014), Desarrollo guiado por pruebas con Python (1.ª  ed.), O'Reilly Media, pág.  480, ISBN 978-1449364823Archivado del original el 16 de julio de 2017 , consultado el 26 de octubre de 2014.
  • Sitio web oficialEdita esto en Wikidata