stringtranslate.com

Django (marco web)

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] Lo mantiene 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 conexión" de los componentes, menos código, bajo acoplamiento, desarrollo rápido y el principio de no repetirse . [9] Python se utiliza en todas partes, 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 mediante introspección y se configura mediante 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 el otoño de 2003, cuando los programadores web del periódico Lawrence Journal-World , Adrian Holovaty y Simon Willison , comenzaron a utilizar Python para crear aplicaciones. Jacob Kaplan-Moss fue contratado al principio del desarrollo de Django, poco antes de que terminara la pasantía de Simon Willison. [16] Fue lanzado públicamente bajo una licencia BSD en julio de 2005. El marco lleva el nombre del guitarrista Django Reinhardt . [17] Adrian 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 Django Software Foundation (DSF) recién formada mantendría 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 "vistas" a los objetos invocables que generan las respuestas HTTP , [7] el marco central de Django puede verse como una arquitectura MVC . [8] Consiste en un mapeador relacional de objetos (ORM) que media entre modelos de datos (definidos como clases Python) y una base de datos relacional (" M odel"), un sistema para procesar solicitudes HTTP con un sistema de plantillas web (" V ista") y un despachador de URL basado en expresiones regulares (" Controlador ").

También se incluyen en el marco central:

Aplicaciones incluidas

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

Extensibilidad

El sistema de configuración de Django permite conectar código de terceros a un proyecto normal, siempre que siga las convenciones de la aplicación reutilizable [22] . Más de 5000 paquetes [23] están disponibles para ampliar el comportamiento original del marco, brindando 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 etiquetas de plantilla asumen una implementación de motor, y tanto las aplicaciones empaquetadas de autenticación como de administración requieren el uso del ORM interno . Ninguno de estos filtros o aplicaciones empaquetadas son obligatorios para ejecutar un proyecto Django, pero las aplicaciones reutilizables tienden a depender de ellos, lo que anima a los desarrolladores a seguir usando la pila oficial para beneficiarse plenamente del ecosistema de aplicaciones.

Arreglos del servidor

Django se puede ejecutar 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 bases 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] Hay una bifurcación llamada django-nonrel, que admite bases de datos NoSQL , como MongoDB y Google App Engine 's Datastore. [32]

Django también se puede ejecutar 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 puede proporcionar funcionalidad para compilar Django en un .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] A las versiones LTS se les aplicarán correcciones de seguridad y 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.


DjangoCon

Hay una conferencia semestral para desarrolladores y usuarios de Django, denominada "DjangoCon", que se celebra desde septiembre de 2008. DjangoCon se celebra anualmente en Europa, en mayo o junio; [62] mientras que otro se realiza en Estados Unidos en agosto o septiembre, en varias ciudades. [63] La DjangoCon 2012 tuvo lugar en Washington, DC, del 3 al 8 de septiembre. 2013 DjangoCon se llevó a cabo en Chicago en el Hotel Hyatt Regency y los Sprints posteriores a la conferencia se realizaron en Digital Bootcamp, un centro de capacitación en informática. [64] La DjangoCon US de 2014 regresó a Portland , Oregón, del 30 de agosto al 6 de septiembre. La DjangoCon US 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, PA, en la Escuela Wharton de la Universidad de Pensilvania, del 17 al 22 de julio. [65] La DjangoCon US 2017 se llevó a cabo en Spokane, WA; [66] En 2018, DjangoCon US se llevó a cabo en San Diego, CA. [67] DjangoCon US 2019 se celebró nuevamente en San Diego, CA, del 22 al 27 de septiembre. DjangoCon 2021 se llevó a cabo virtualmente y en 2022, DjangoCon US regresó a San Diego del 16 al 21 de octubre.

Las miniconferencias de Django generalmente se llevan a cabo todos los años como parte de la Conferencia Australiana de Python 'PyCon AU'. [68] 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. [69] [70] [71]

Puertos a otros idiomas

Los programadores han portado el diseño del motor de plantillas de Django desde Python a otros lenguajes, proporcionando un soporte multiplataforma decente. Algunas de estas opciones son puertos más directos; otros, aunque inspirados en Django y conservando sus conceptos, se toman la libertad de desviarse del diseño de Django:

CMS basados ​​en Django Framework

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

Ver también

Referencias

  1. ^ abc "django/LÉAME". GitHub . Consultado el 8 de septiembre de 2020 .
  2. ^ "Preguntas frecuentes sobre Django" . Consultado el 27 de marzo de 2019 .
  3. ^ "5.0.3". 4 de marzo de 2024 . Consultado el 5 de marzo de 2024 .
  4. ^ "Descarga de Django" . Consultado el 7 de agosto de 2020 .
  5. ^ "django/LICENCIA". 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. ^ ab Adrian Holovaty, Jacob Kaplan-Moss; et al. El libro de Django. 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 llamarlo marco MVC.
  9. ^ "Filosofías del diseño". Django . Consultado el 18 de marzo de 2018 .
  10. ^ "Qué impulsa a Instagram: cientos de instancias, docenas de tecnologías". Ingeniería de Instagram .
  11. ^ "Pitón". 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 ya esta red social privada". El borde . 18 de agosto de 2014 . Consultado el 16 de junio de 2016 .
  15. ^ Demi, Luke (15 de agosto de 2021). "Refrenando la manada atronadora ⛈ Llegar al 80% de utilización de la CPU con Django". Blog de la casa club . Consultado el 16 de agosto de 2021 .
  16. ^ Willison, Simón . "¿Cuál es la historia del framework web Django? ¿Por qué se lo ha descrito como" desarrollado en una sala de redacción "?". Quora . Consultado el 18 de octubre de 2019 .
  17. ^ "Presentando 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: Música de guitarra melódica, divertida y precisa de Adrian Holovaty'". Guitarra acustica . 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 Django Packages" . 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 Configuración de Django - Documentación 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. ^ "Google Code Archive: almacenamiento a largo plazo para Google Code Project Hosting" . Consultado el 30 de abril de 2016 .
  31. ^ maxirobaína. "GitHub - maxirobaina/django-firebird: backend SQL de Firebird para django". GitHub . Consultado el 30 de abril de 2016 .
  32. ^ "Django no relacionado" . Consultado el 30 de abril de 2016 .
  33. ^ máquina de playa. "GitHub - beachmachine/django-jython: backends de bases de datos y extensiones para el desarrollo de Django sobre Jython". GitHub . Consultado el 30 de abril de 2016 .
  34. ^ "Proceso de lanzamiento 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. ^ "Lanzamiento de Django 0.91". Blog de Django. Consultado el 2 de febrero de 2013.
  39. ^ "Presentamos Django 0,95". Blog de Django. Consultado el 2 de febrero de 2013.
  40. ^ "¡Anuncio de Django 0.96!". Blog de Django. Consultado el 2 de febrero de 2013.
  41. ^ "¡Lanzamiento de Django 1.0!". Blog de Django. Consultado el 2 de febrero de 2013.
  42. ^ "Lanzamiento de Django 1.1". Blog de Django. Consultado el 2 de febrero de 2013.
  43. ^ "Lanzamiento de Django 1.2". Blog de Django. Consultado el 2 de febrero de 2013.
  44. ^ "Lanzamiento de Django 1.3". Blog de Django. Consultado el 2 de febrero de 2013.
  45. ^ "Lanzamiento de Django 1.4". Blog de Django. Consultado el 2 de febrero de 2013.
  46. ^ "Lanzamiento de Django 1.5" Blog de Django. Consultado el 27 de febrero de 2013.
  47. ^ "Lanzamiento de Django 1.6" Blog de Django. Consultado el 6 de noviembre de 2013.
  48. ^ "Lanzamiento de Django 1.7" Blog de Django. Consultado el 4 de septiembre de 2014.
  49. ^ "Lanzamiento de Django 1.8" Blog de Django. Consultado el 2 de abril de 2015.
  50. ^ "Lanzamiento de Django 1.9" Blog de Django. Consultado el 1 de diciembre de 2015.
  51. ^ "Lanzamiento de Django 1.10" Blog de Django. Consultado el 1 de agosto de 2016.
  52. ^ "Lanzamiento de Django 1.11" Blog de Django. Consultado el 4 de abril de 2017.
  53. ^ "Lanzamiento de Django 2.0" Blog de Django. Consultado el 3 de diciembre de 2017.
  54. ^ "Lanzamiento de Django 2.1" 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. ^ Serie DjangoCon EU Archivado el 4 de marzo de 2016 en Wayback Machine , Lanyrd.com
  63. ^ Serie DjangoCon US Archivado el 2 de abril de 2016 en Wayback Machine , Lanyrd.com
  64. ^ "DjangoCon". DjangoCon. Archivado desde el original el 5 de agosto de 2012 . Consultado el 29 de julio de 2012 .
  65. ^ "DjangoCon". DjangoCon . Consultado el 1 de diciembre de 2016 .
  66. ^ "DjangoCon". DjangoCon.
  67. ^ "DjangoCon". DjangoCon.
  68. ^ DjangoCon AU. Djangocon.com.au. Recuperado el 16 de diciembre de 2019.
  69. ^ "Django, nacido en Lawrence, que revolucionó la construcción de sitios web y celebra su décimo aniversario". Lawrence Journal-World . 9 de julio de 2015 . Consultado el 18 de octubre de 2019 .
  70. ^ "Django Girls: comienza tu viaje con la programación" . Consultado el 21 de octubre de 2019 .
  71. ^ "Grupos de Django". Reunirse .
  72. ^ Comprar. "– Lenguaje de plantilla líquido". Lenguaje de plantilla líquido .
  73. ^ "Plantilla :: Swig: interfaz Perl para el motor de plantillas Swig inspirado en Django. - metacpan.org". metacpan.org .
  74. ^ Sinfonía. "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 .
  75. ^ "twigjs/twig.js". GitHub .
  76. ^ "Bienvenido - Jinja2 (el motor de plantillas de Python)". jinja.pocoo.org .
  77. ^ "erlydtl/erlydtl". GitHub .
  78. ^ "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