FAQ: General

¿Por qué existe este proyecto?

Django grew from a very practical need: World Online, a newspaper Web operation, is responsible for building intensive Web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated Web application from concept to public launch.

Al mismo tiempo, los desarrolladores de la web World Online han sido consistentemente rigurosos cuando se trata de seguir las mejores prácticas para el desarrollo web.

In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) ditched PHP and began using Python to develop its websites. As they built intensive, richly interactive sites such as Lawrence.com, they began to extract a generic Web development framework that let them build Web applications more and more quickly. They tweaked this framework constantly, adding improvements over two years.

In summer 2005, World Online decided to open-source the resulting software, Django. Django would not be possible without a whole host of open-source projects – Apache, Python, and PostgreSQL to name a few – and we’re thrilled to be able to give something back to the open-source community.

¿Qué significa “Django” y cómo se pronuncia?

Django is named after Django Reinhardt, a jazz manouche guitarist from the 1930s to early 1950s. To this day, he’s considered one of the best guitarists of all time.

Escucha su música. Te va a gustar.

Django se pronuncia JANG-o. Rima con FANG-o. La “D” es muda.

También hemos grabado un audio clip de la pronunciación.

¿Es estable Django?

Yes, it’s quite stable. Companies like Disqus, Instagram, Pinterest, and Mozilla have been using Django for many years. Sites built on Django have weathered traffic spikes of over 50 thousand hits per second.

¿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 puedas dar.

Django usa una arquitectura “shared-nothing”, lo cual significa que puedes agregar hardware en cualquier nivel – servidores de base de datos, de caching o Web/Aplicaciones.

The framework cleanly separates components such as its database layer and application layer. And it ships with a simple-yet-powerful cache framework.

¿Quién está detrás de esto?

Django was originally developed at World Online, the Web department of a newspaper in Lawrence, Kansas, USA. Django’s now run by an international team of volunteers.

¿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 llamas 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 cuál es presentado. La vista describe cuál dato ves, no cómo lo ves. 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.

Por lo tanto, es delicado el separar contenido de la presentación – lo cuál 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 es presentado 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 tienes hambre de acrónimos, podrías decir que Django es un framework “MPV” – esto es “modelo”, “plantilla” y, “vista”. Esa forma 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 terminar las cosas en una forma que es más lógica para nosotros.

El <Framework X> hace <característica Y> – ¿Por qué no lo hace Django?

Estamos conscientes de que hay otros impresionantes frameworks web por ahí, y no tenemos adversión a tomar prestadas ideas donde sea apropiado. Sin embargo, Django fue desarrollado precisamente porque no estabamos felices con el estatus quo, así que toman en cuenta que “porque <Framework X> lo hace” no va a hacer una razón suficiente para agregar dicha característica a Django.

¿Por qué escribieron todo Django desde cero, en vez de usar otras bibliotecas Python?

Cuando Django fue escrito originalmente, hace un par de años, Adrian y Simon gastaron bastante tiempo explorando varios frameworks Web de Python disponibles.

En nuestra opinión, ninguno de ellos era completamente satisfactorio.

Somos exigentes. Podrías incluso llamarnos perfeccionistas. (Con las fechas límite).

Con el paso del tiempo, nos topamos con bibliotecas open-source que hacían cosas que ya habíamos implementado. Era reconfortante ver a otras personas resolviendo problemas similares de maneras similares, probadas e implementadas en sus propios frameworks en varias configuraciones de producción – y que nuestro propio código satisfacía nuestras necesidades deliciosamente.

En la mayoría de los casos, sin embargo, encontramos que los frameworks/herramientas inevitablemente tenían algún tipo de error fatal fundamental que nos hacía remilgar. Ninguna herramienta encajaba con nuestra filosofía al 100%.

Como dijimos: Somos exigentes.

We’ve documented our philosophies on the design philosophies page.

¿Django es un Sistema de Administración de Contenidos (CMS)?

No, Django is not a CMS, or any sort of “turnkey product” in and of itself. It’s a Web framework; it’s a programming tool that lets you build websites.

Por ejemplo, no hace mucho sentido el comparar Django a algo como Drupal, porque Django es algo que usas para crear cosas como Drupal.

Por supuesto, el sitio de administración 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 construir aplicaciones tipo “CMS”, esto no significa que no es tan apropiado para construir 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 la carpeta docs de cada publicación 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.

Debido a que la documentación está almacenada en un control de revisión, puedes revisar los cambios en la documentación de la misma forma en que revisas cambios en el código.

Técnicamente, la documentación en el sitio de Django es generada desde la última versión de desarrollo de esos documentos reST, así que la documentación en el sitio de Django puede ofrecer más información que los documentos que vienen con la última publicación de Django.

¿Dónde puedo encontrar desarrolladores de Django para contratarlos?

Consulte nuestra página desarrolladores disponibles para empleo para encontrar una lista de desarrolladores Django quienes estarían felices de ayudarte.

You might also be interested in posting a job to https://djangogigs.com/ . If you want to find Django-capable people in your local area, try https://people.djangoproject.com/ .

¿Cómo puedo citar a Django?

Es difícil dar un formato oficial de cita, esto por dos razones: los formatos de cita pueden variar salvajemente entre publicaciones, y los estándares para citar software son aún materia de debate.

Por ejemplo, el estilo APA, dictaría algo como

Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.

Sin embargo, la única real es lo que tu editor aceptará, así que obtén una de esas guías y llena los vacíos lo mejor que puedas.

Si tu guía de estilo de refencias requiere un nombre de editor, usa “Django Software Foundation”.

Si necesitas un lugar de publicación, usa “Lawrence, Kansas”.

Si necesitas una dirección web, usa https://djangoproject.com.

Si necesitas un nombre, sólo usa “Django”, sin ningún subtítulo.

Si necesitas una fecha de publicación, usa el año de liberación de la versión que estás referenciando (por ejemplo, 2013 para v1.5)