FAQ: General¶
¿Por qué existe este proyecto?¶
Django creció de una necesidad muy práctica: World Online, una operación de prensa Web, es responsable de crear aplicaciones Web intensivas en plazos de periodismo. En la sala de redacción con su ritmo rápido, World Online con frecuencia cuenta solo con horas para llevar una compleja aplicación Web del concepto a su lanzamiento público.
Al mismo tiempo, los desarrolladores de la web World Online han sido consistentemente perfeccionistas cuando se trata de seguir las mejores prácticas para el desarrollo web.
En el otoño de 2003, los desarrolladores de World Online (Adrian Holovaty y Simon Willison) abandonaron PHP y comenzaron a usar Python para desarrollar sus sitios web. A medida que creaban sitios altamente interactivos e intensivos como Lawrence.com, comenzaron a extraer un framework de desarrollo Web genérico que les permitió crear aplicaciones Web de forma cada vez más rápida. Ellos modificaron este framework constantemente, añadiendo mejoras a lo largo de dos años.
En el verano de 2005, World Online decidió distribuir libremente el código del software resultante, Django. Django no sería posible sin una gran cantidad de proyectos de código abierto, Apache_, Python_ y PostgreSQL por mencionar algunos – y estamos emocionados de aportar algo a la comunidad de código abierto.
¿Qué significa «Django» y cómo se pronuncia?¶
Django recibe su nombre de Django Reinhardt, un guitarrista de Jazz manouche de 1930’s hasta principios de la década de 1950’s. Hasta hoy en día, es considerado uno de los mejores guitarristas de todos los tiempos.
Escuche su música. Le va a gustar.
Django se pronuncia YANG-o. Rima con FANG-o. La «D» es muda.
También hemos grabado una muestra de audio de la pronunciación.
¿Es estable Django?¶
Sí, es bastante estable. Empresas como Disqus, Instagram, Pinterest y Mozilla han estado utilizando Django durante muchos años. Los sitios construidos sobre Django han experimentado picos de tráfico de más de 50 mil visitas por segundo.
¿Se puede escalar Django?¶
Sí. Comparado con el tiempo de desarrollo, el hardware es barato, por lo que Django está diseñado para tomar ventaja de tanto hardware como le pueda dar.
Django usa una arquitectura tipo «nada compartido» lo cual significa que puede agregar hardware en cualquier nivel, servidores de base de datos, de caché o Web/Aplicaciones.
El framework separa limpiamente componentes como la capa de base de datos y la capa de la aplicación. Además, se distribuye con un simple pero poderoso framework de caché.
¿Quién está detrás de esto?¶
Django fue desarrollado originalmente en World Online, el departamento web de un periódico en Lawrence, Kansas, EE.UU. Django es dirigido actualmente por un equipo internacional de voluntarios.
How is Django licensed?¶
Django is distributed under the 3-clause BSD license. This is an open source license granting broad permissions to modify and redistribute Django.
Why does Django include Python’s license file?¶
Django includes code from the Python standard library. Python is distributed under a permissive open source license. A copy of the Python license is included with Django for compliance with Python’s terms.
¿Qué sitios usan Django?¶
DjangoSites.org cuenta con una lista cada vez mayor de sitios web que funcionan con Django.
Django parece ser un framework MVC, pero ustedes llaman al Controlador «vista», y a la Vista «plantilla». ¿Cómo es que no usan los nombres estándares?¶
Bueno, los nombres estándar son debatibles.
En nuestra interpretación de MVC, la «vista» describe el dato que es presentado al usuario. No es necesariamente cómo se ve el dato, sino qué dato se muestra. La vista describe cuál dato ve, no cómo lo ve. Es una distinción sutil.
Así pues, en nuestro caso, una «vista» es la función de callback en Python para una URL en particular, porque esta función callback describe cuál dato es presentado.
Además, es sensato separar el contenido de la presentación que es donde entran las plantillas. En Django, una «vista» describe cual dato es presentado, pero una vista normalmente lo delega a una plantilla, la cual describe cómo se presenta el dato.
Entonces ¿donde entra el «controlador»? En el caso de Django, es probable que en el mismo framework: la maquinaria que envía una petición a la vista apropiada, de acuerdo a la configuración de URL de Django.
Si busca acrónimos, usted podría decir que Django es un framework «MTV», esto es «modelo», «plantilla» y «vista». Ese desglose tiene mucho más sentido.
Al final del día, por supuesto, la cuestión es terminar las cosas. Independientemente de cómo se nombren las cosas, Django consigue terminarlas en una forma que es más lógica para nosotros.
El <Framework X> tiene la <funcionalidad Y> – ¿por qué Django no?¶
Estamos conscientes de que existen otros impresionantes frameworks Web por ahí, y no estamos en contra de tomar prestadas ideas donde sea apropiado. Sin embargo, Django fue desarrollado precisamente porque no estábamos felices con el estatus quo, así que tenga en cuenta que «porque el <Framework X> la tiene» no va a hacer una razón suficiente para agregar dicha funcionalidad a Django.
¿Por qué escribieron todo Django desde cero en vez de usar otras librerías de Python?¶
Cuando Django se escribió originalmente, Adrian y Simon pasaron bastante tiempo explorando los diversos frameworks web de Python disponibles.
En nuestra opinión, ninguno de ellos estaba a la altura de las circunstancias.
Somos exigentes, podrían incluso llamarnos perfeccionistas (con las fechas límites.)
Con el paso del tiempo, nos topamos con librerías de código abierto que hacían cosas que ya habíamos implementado. Era reconfortante ver a otras personas resolviendo problemas similares de maneras similares, pero era demasiado tarde para integrar código externo: Ya habíamos escrito, probado e implementado fragmentos de nuestro propio framework en varias configuraciones de producción y que nuestro propio código satisfizo nuestras necesidades de maravilla.
Sin embargo, en la mayoría de los casos encontramos que los frameworks y herramientas inevitablemente tenían algún tipo de error fatal fundamental que nos hacía remilgar. Ninguna herramienta se adaptaba 100% a nuestra filosofía.
Como dijimos: Somos exigentes.
Hemos documentado nuestra filosofía en la página de la filosofías de diseño.
¿Django es un Sistema de Gestión de Contenidos (CMS)?¶
No, Django no es un CMS o cualquier tipo de «producto listo para usar». Es un framework para la Web, es una herramienta de programación que le permite crear sitios Web.
Por ejemplo, no tiene mucho sentido comparar Django con algo como Drupal porque Django es algo que usas para crear cosas como Drupal.
Por supuesto, el sitio administrativo de Django creado automáticamente es fantástico y ahorra tiempo, pero es sólo un módulo del framework. Además, a pesar de que Django tiene algunas ventajas para crear aplicaciones tipo «CMS», esto no significa que no es tan apropiado para crear aplicaciones «no CMS» (¡Lo que sea que eso signifique!).
¿Cómo puedo descargar la documentación de Django para leerla sin conexión?¶
La documentación de Django está disponible en el directorio docs
de cada versión tarball de Django. Estos documentos están en formato reST (reStructuredText) y cada archivo de texto corresponde a una página Web en el sitio oficial de Django.
Because the documentation is stored in revision control, you can browse documentation changes just like you can browse code changes.
Técnicamente, la documentación en el sitio de Django es generada a partir de la última versión de desarrollo de esos documentos reST, así que la documentación en el sitio de Django podría ofrecer más información que los documentos que vienen con la última versión de Django.
¿Cómo cito a Django?¶
Es difícil dar un formato oficial de cita, esto por dos razones: los formatos de cita pueden variar mucho entre publicaciones y los estándares para citar software son aún materia de debate.
Por ejemplo, estilo APA, dictaría algo como:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.
Sin embargo, la única guía real es la que su editor aceptará, así que obtenga una de esas guías y llene los vacíos lo mejor que pueda.
Si su guía de estilo de referencias requiere un nombre de editor, use «Django Software Foundation».
Si necesita un lugar de publicación, utilice «Lawrence, Kansas».
Si necesita una dirección web, utilice https://djangoproject.com.
Si necesita un nombre, sólo use «Django» sin ningún eslogan.
Si necesita una fecha de publicación, use el año de lanzamiento de la versión que está consultando (por ejemplo, 2013 para v1.5)