stringtranslate.com

Django (marco web)

Django ( / ˈ æ ŋ ɡ / JANG -goh ; a veces estilizado como django ) [6] es un framework 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 marco enfatiza la reutilización y la "capacidad de conectar" los componentes, menos código, bajo acoplamiento, desarrollo rápido y el principio de no repetirse . [9] Python se utiliza en todo el código, incluso para configuraciones, archivos y modelos de datos . Django también proporciona una interfaz administrativa opcional de creación, lectura, actualización y eliminación que se genera dinámicamente a través de la 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 fue creado en el 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] Fue lanzado públicamente bajo una licencia BSD en julio de 2005. El framework recibió el 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 nueva Django Software Foundation (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 nombrar a los objetos invocables que generan las respuestas HTTP "vistas", [7] el marco central de Django puede verse como una arquitectura MVC . [8] Consiste en un mapeador relacional de objetos (ORM) que media entre los modelos de datos (definidos como clases de Python) y una base de datos relacional (" Model "), un sistema para procesar solicitudes HTTP con un sistema de plantillas web (" View "), y un despachador de URL basado en expresiones regulares (" Controller ").

También se incluyen en el marco central:

Aplicaciones agrupadas

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

Extensibilidad

El sistema de configuración de Django permite que código de terceros se conecte a un proyecto normal, siempre que siga las convenciones de aplicaciones reutilizables [22] . Hay más de 5000 paquetes [23] disponibles para ampliar 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.

Sin embargo, esta extensibilidad se ve mitigada por las dependencias de los componentes internos. Si bien la filosofía de Django implica un acoplamiento flexible, [24] los filtros y las etiquetas de plantilla suponen la implementación de un motor, y tanto las aplicaciones incluidas como las de autenticación y administración requieren el uso del ORM interno . Ninguno de estos filtros o aplicaciones incluidas son obligatorios para ejecutar un proyecto de Django, pero las aplicaciones reutilizables tienden a depender de ellos, lo que alienta a los desarrolladores a seguir usando la pila oficial para beneficiarse plenamente del ecosistema de aplicaciones.

Disposiciones de servidores

Django puede ejecutarse junto con Apache , Nginx usando WSGI , Gunicorn o Cherokee usando flup (un módulo de Python). [25] [26] Django también incluye la capacidad de iniciar un servidor FastCGI , lo que permite su uso detrás de cualquier servidor web que admita FastCGI, como Lighttpd o Hiawatha . También es posible utilizar otros servidores web compatibles con WSGI . [27] Django admite oficialmente cinco backends de base de datos: PostgreSQL , MySQL , MariaDB , SQLite y Oracle . [28] Microsoft SQL Server se puede utilizar con django-mssql, mientras que existen backends externos similares para IBM Db2 , [29] SQL Anywhere [30] y Firebird . [31] Existe una bifurcación llamada django-nonrel, que admite bases de datos NoSQL , como MongoDB y Datastore de Google App Engine . [32]

Django también puede ejecutarse junto con Python en cualquier servidor de aplicaciones Java EE , como GlassFish o JBoss . En este caso, se debe instalar django-jython para proporcionar controladores JDBC para la conectividad de la base de datos, que también pueden proporcionar la funcionalidad para compilar Django en un archivo .war adecuado para la implementación. [33]

Historial de versiones

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


DjangoCon

Hay una conferencia semestral para desarrolladores y usuarios de Django, llamada "DjangoCon", que se lleva a cabo desde septiembre de 2008. DjangoCon se lleva a cabo anualmente en Europa, en mayo o junio; [64] mientras que otra se lleva a cabo en los Estados Unidos en agosto o septiembre, en varias ciudades. [65] La DjangoCon de 2012 tuvo lugar en Washington, DC, del 3 al 8 de septiembre. La DjangoCon de 2013 se llevó a cabo en Chicago en el Hyatt Regency Hotel y los Sprints posteriores a la conferencia se llevaron a cabo en Digital Bootcamp, un centro de capacitación en informática. [66] La DjangoCon US de 2014 regresó a Portland , OR del 30 de agosto al 6 de septiembre. La DjangoCon US de 2015 se llevó a cabo en Austin , TX del 6 al 11 de septiembre en el AT&T Executive Center. La DjangoCon US 2016 se celebró en Filadelfia, Pensilvania, en la Wharton School de la Universidad de Pensilvania, del 17 al 22 de julio . [67] La ​​DjangoCon US 2017 se celebró en Spokane, Washington; [68] en 2018, la DjangoCon US se celebró en San Diego, California. [69] La DjangoCon US 2019 se celebró de nuevo en San Diego, California, del 22 al 27 de septiembre. La DjangoCon 2021 se llevó a cabo de forma virtual y en 2022, la DjangoCon US regresó a San Diego del 16 al 21 de octubre. La DjangoCon US 2023 se celebró del 16 al 20 de octubre en el centro de convenciones de Durham , Carolina del Norte, y la DjangoCon US 2024 está prevista para volver a Durham del 22 al 27 de septiembre. [70] [71]

Las miniconferencias de Django se suelen celebrar todos los años como parte de la Conferencia Australiana de Python 'PyCon AU'. [72] Anteriormente, estas miniconferencias se han celebrado en:

Django ha generado grupos de usuarios y reuniones en todo el mundo, el grupo más notable es la organización Django Girls , que comenzó en Polonia pero ahora ha tenido eventos en 91 países. [73] [74] [75]

Puertos a otros idiomas

Los programadores han trasladado el diseño del motor de plantillas de Django desde Python a otros lenguajes, lo que proporciona un soporte multiplataforma decente. Algunas de estas opciones son adaptaciones más directas; otras, aunque inspiradas en Django y manteniendo sus conceptos, se toman la libertad de desviarse del diseño de Django:

CMS basados ​​en Django Framework

Django como framework es capaz de crear un CMS completo , sin embargo, existen proyectos CMS dedicados que se basan en el framework Django y lo amplían. A continuación, se incluye una lista de algunos de los CMS basados ​​en Django más populares:

Véase también

Referencias

  1. ^ abc "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 5.1.2". 8 de octubre de 2024. Consultado el 21 de octubre de 2024 .
  4. ^ "Descargar Django" . Consultado el 7 de agosto de 2020 .
  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. ^ ab "Preguntas frecuentes: General - Documentación de Django - Django" . Consultado el 30 de abril de 2016 .
  8. ^ de Adrian Holovaty, Jacob Kaplan-Moss; et al. The Django Book. Archivado desde el original el 2 de septiembre de 2016. Consultado el 3 de septiembre de 2013. Django sigue este patrón MVC lo suficientemente de cerca como para que se lo pueda llamar un marco MVC.
  9. ^ "Filosofías de diseño". Django . Consultado el 18 de marzo de 2018 .
  10. ^ "Lo que impulsa a Instagram: cientos de instancias, docenas de tecnologías". Ingeniería de Instagram .
  11. ^ "Python". Red de desarrolladores de Mozilla . Archivado desde el 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 desde el original el 20 de abril de 2016. Consultado el 30 de abril de 2016 .
  14. ^ "El anti-Facebook: uno de cada cuatro barrios estadounidenses utiliza ahora 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). "Cómo controlar la manada atronadora ⛈ Cómo alcanzar el 80 % de utilización de la CPU con Django". Blog de Clubhouse . Consultado el 16 de agosto de 2021 .
  16. ^ Willison, Simon . "¿Cuál es la historia del framework web Django? ¿Por qué se lo ha descrito como "desarrollado en una sala de prensa"?". Quora . Consultado el 18 de octubre de 2019 .
  17. ^ "Introducción a Django". El libro de Django. Archivado desde el original el 29 de julio de 2018. Consultado el 29 de julio de 2018 .
  18. ^ "Reseña: 'Melodic Guitar Music', de Adrian Holovaty, precisa y lúdica". Guitarra acústica . 12 de diciembre de 2023. Archivado desde el original el 30 de diciembre de 2023.
  19. ^ "Anuncio de la Django Software Foundation - Weblog - Django" . 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 de seguridad básicas (especialmente con Django)" . Consultado 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 paquetes de Django" . Consultado el 17 de abril de 2023 .
  24. ^ "Filosofías de diseño - Documentación de Django - Django". Archivado desde el original el 4 de marzo de 2016 . Consultado el 30 de abril de 2016 .
  25. ^ "Documentación de implementación de Django". Archivado desde el original el 11 de enero de 2012.
  26. ^ "Servidor web Cherokee: libro de recetas para configurar Django: documentación de Cherokee" . Consultado el 30 de abril de 2016 .
  27. ^ Cómo usar Django con Apache y mod_wsgi Archivado el 8 de marzo de 2013 en Wayback Machine . Documentación oficial de Django.
  28. ^ "Documentación de Django". Documentación de Django . Consultado el 9 de junio de 2023 .
  29. ^ ibmdb. «GitHub - ibmdb/python-ibmdb: Exportado automáticamente desde code.google.com/p/ibm-db». GitHub . Consultado el 30 de abril de 2016 .
  30. ^ "Archivo de código de Google: almacenamiento a largo plazo para el alojamiento de proyectos de código de Google" . Consultado el 30 de abril de 2016 .
  31. ^ maxirobaina. «GitHub - maxirobaina/django-firebird: backend SQL de Firebird para django». GitHub . Consultado el 30 de abril de 2016 .
  32. ^ "Django non-rel" . Consultado el 30 de abril de 2016 .
  33. ^ beachmachine. «GitHub - beachmachine/django-jython: backends y extensiones de bases de datos para el desarrollo de Django sobre Jython». GitHub . Consultado el 30 de abril de 2016 .
  34. ^ "Proceso de publicación de Django - Documentación de Django - Django" . Consultado el 30 de abril de 2016 .
  35. ^ "Descargar Django - Django". www.djangoproject.com .
  36. ^ "Preguntas frecuentes: Instalación - Documentación de Django - Django". docs.djangoproject.com .
  37. ^ "Presentación de Django 0.90". Blog de Django. Consultado el 2 de febrero de 2013.
  38. ^ "Django 0.91 publicado". Blog de Django. Consultado el 2 de febrero de 2013.
  39. ^ "Presentación de Django 0.95". Blog de Django. Consultado el 2 de febrero de 2013.
  40. ^ "¡Anunciamos Django 0.96!". Blog de Django. Consultado el 2 de febrero de 2013.
  41. ^ "¡Ya se publicó Django 1.0!". Blog de Django. Consultado el 2 de febrero de 2013.
  42. ^ "Django 1.1 publicado". Blog de Django. Consultado el 2 de febrero de 2013.
  43. ^ "Django 1.2 publicado". Blog de Django. Consultado el 2 de febrero de 2013.
  44. ^ "Django 1.3 publicado". Blog de Django. Consultado el 2 de febrero de 2013.
  45. ^ "Django 1.4 publicado". Blog de Django. Consultado el 2 de febrero de 2013.
  46. ^ "Django 1.5 lanzado" Blog de Django. Consultado el 27 de febrero de 2013.
  47. ^ "Django 1.6 lanzado" Blog de Django. Consultado el 6 de noviembre de 2013.
  48. ^ "Django 1.7 lanzado" Blog de Django. Consultado el 4 de septiembre de 2014.
  49. ^ "Django 1.8 lanzado" Blog de Django. Consultado el 2 de abril de 2015.
  50. ^ "Django 1.9 lanzado" Blog de Django. Consultado el 1 de diciembre de 2015.
  51. ^ "Django 1.10 lanzado" Blog de Django. Consultado el 1 de agosto de 2016.
  52. ^ "Django 1.11 lanzado" Blog de Django. Consultado el 4 de abril de 2017.
  53. ^ "Django 2.0 lanzado" Blog de Django. Consultado el 3 de diciembre de 2017.
  54. ^ "Django 2.1 lanzado" Blog de Django. Consultado el 2 de agosto de 2018.
  55. ^ Notas de la versión de Django 2.2. Consultado el 1 de julio de 2019.
  56. ^ Notas de la versión de Django 3.0. Consultado el 2 de diciembre de 2019.
  57. ^ Notas de la versión de Django 3.1. Consultado el 5 de agosto de 2020.
  58. ^ "Notas de la versión de Django 3.2". 6 de abril de 2021. Consultado el 7 de junio de 2021 .
  59. ^ "Notas de la versión de Django 4.0". 7 de diciembre de 2021. Consultado el 4 de agosto de 2022 .
  60. ^ "Notas de la versión de Django 4.1". 3 de agosto de 2022. Consultado el 4 de agosto de 2022 .
  61. ^ "Notas de la versión de Django 4.2" . Consultado el 4 de agosto de 2022 .
  62. ^ "Notas de la versión de Django 5.0". 4 de diciembre de 2023. Consultado el 4 de diciembre de 2023 .
  63. ^ "Notas de la versión de Django 5.1". 7 de agosto de 2024. Consultado el 8 de agosto de 2024 .
  64. ^ Serie DjangoCon EU Archivado el 4 de marzo de 2016 en Wayback Machine , Lanyrd.com
  65. ^ Serie DjangoCon US Archivado el 2 de abril de 2016 en Wayback Machine , Lanyrd.com
  66. ^ "DjangoCon". DjangoCon. Archivado desde el original el 5 de agosto de 2012. Consultado el 29 de julio de 2012 .
  67. ^ "DjangoCon". DjangoCon . Consultado el 1 de diciembre de 2016 .
  68. ^ "DjangoCon". DjangoCon.
  69. ^ "DjangoCon". DjangoCon.
  70. ^ "Acerca de DjangoCon US 2023". DjangoCon US . Consultado el 17 de julio de 2024 .
  71. ^ "Acerca de DjangoCon US". DjangoCon US . Consultado el 17 de julio de 2024 .
  72. ^ DjangoCon AU. Djangocon.com.au. Consultado el 16 de diciembre de 2019.
  73. ^ "Django, el programa nacido en 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 .
  74. ^ "Django Girls - comienza tu viaje con la programación" . Consultado el 21 de octubre de 2019 .
  75. ^ "Grupos de Django". Meetup .
  76. ^ Shopify. "– Lenguaje de plantillas Liquid". Lenguaje de plantillas Liquid .
  77. ^ "Template::Swig - Interfaz Perl para el motor de plantillas Swig inspirado en Django. - metacpan.org". metacpan.org .
  78. ^ Symfony. «Inicio - Twig - El motor de plantillas PHP flexible, rápido y seguro». twig.sensiolabs.org . Archivado desde el original el 9 de julio de 2017. Consultado el 10 de diciembre de 2014 .
  79. ^ "twigjs/twig.js". GitHub .
  80. ^ "Bienvenido - Jinja2 (El motor de plantillas Python)". jinja.pocoo.org .
  81. ^ "erlydtl/erlydtl". GitHub .
  82. ^ "django CMS - Gestión de contenido empresarial con Django - django CMS". www.django-cms.org . Consultado el 11 de noviembre de 2020 .

Bibliografía

Enlaces externos