FAQ: General¶
¿Por qué existe este proyecto?¶
Django surgió de una necesidad muy práctica: World Online, una operación web de periódicos, es responsable de crear aplicaciones web intensivas en los plazos ajustados de periodismo. En la sala de redacción de ritmo rápido, World Online a menudo tiene solo una cuestión de horas para llevar una aplicación web complicada desde el concepto hasta el lanzamiento público.
Al mismo tiempo, los desarrolladores web de World Online siempre han sido perfeccionistas cuando se trata de seguir las mejores prácticas de 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 intensivos y muy interactivos como Lawrence.com, comenzaron a extraer un marco de desarrollo web genérico que les permitía crear aplicaciones web cada vez con mayor rapidez. Modificaron este marco constantemente, agregando mejoras durante 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.
¿Django es estable?¶
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 utiliza una arquitectura de «nada compartido», lo que significa que puede agregar hardware en cualquier nivel: servidores de bases de datos, servidores de almacenamiento en caché o servidores web/de 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 se desarrolló originalmente en World Online, el departamento web de un periódico en Lawrence, Kansas, EE. UU. Django ahora está dirigido por un equipo internacional de voluntarios <https://www.djangoproject.com/foundation/teams/> _.
¿Cómo se licencia Django?¶
Django es distribuido bajo la licencia BSD de 3 clausulas. Esta es una licencia de código abierto que otorga amplios permisos para modificar y redistribuir Django.
¿Por qué Django incluye el archivo de licencia de Python?¶
Django incluye código de la biblioteca estándar de Python. Python se distribuye bajo una licencia permisiva de código abierto. Se incluye una copia de la licencia de Python con Django para cumplir con los términos de Python.
¿Qué sitios usan Django?¶
BuiltWithDjango.com features a constantly growing list of Django-powered sites.
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, todo se reduce a hacer las cosas. E, independientemente del nombre de las cosas, Django hace las cosas de la manera más lógica para nosotros.
El <Framework X> tiene la <funcionalidad Y> – ¿por qué Django no?¶
Somos muy conscientes de que existen otros frameworks web increíbles, y no somos reacios a tomar prestadas ideas cuando sea apropiado. Sin embargo, Django se desarrolló precisamente porque no estábamos contentos con el status quo, así que tenga en cuenta que «por que <Framework X> lo hace» no será razón suficiente para agregar una característica determinada a Django.
¿Por qué escribieron todo Django desde cero en vez de usar otras librerías de Python?¶
Cuando Django fue escrito originalmente, Adrian y Simon pasaron bastante tiempo explorando los diversos marcos 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 dudar. 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, ni ningún tipo de «producto listo para usar» en sí mismo. Es un framework para web; es una herramienta de programación que te 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.
Sí, el sitio de administración automática de Django es fantástico y ahorra tiempo, pero el sitio de administración es un módulo de framework Django. Además, aunque Django tiene comodidades especiales para crear aplicaciones «CMS-y», eso no significa que no sea tan apropiado para crear aplicaciones «no CMS-y» (¡lo que sea que eso signifique!).
¿Cómo puedo descargar la documentación de Django para leerla sin conexión?¶
Los documentos de Django están disponibles en el directorio docs
de cada lanzamiento de Django tarball. 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.
Debido a que la documentación es stored in revision control, puede examinar los cambios en la documentación del mismo modo que puede examinar los cambios de código.
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, APA style, dictaría algo como:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://www.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, puede usar https://www.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)