Documentos de Académico
Documentos de Profesional
Documentos de Cultura
campusvirtual@inei.gob.pe
Django
Es un framework específicamente desarrollado para agilizar el desarrollo web y de esta manera hacer
más eficiente y rápido los ciclos de desarrollo, su origen se da gracias a los programadores Adrian
Holovaty y Simon Willison cuando decidieron abandonar PHP y utilizar Python (Un lenguaje de
programación interpretado al igual que PHP) para la programación de sitios web de alta envergadura
como lo es Lawrence.com alrededor del año 2003.
Está basado en una arquitectura derivada del MVC (Modelo-Vista-Controlador) llamada MPV (Modelo-
Plantilla-Vista, MTV por sus siglas en inglés), hay algunas diferencias más que todo teóricas, que
prácticas, aunque es bueno tenerlas en mente para evitar confusiones.
Así, con Django podremos crear desde webs personales, sistemas de gestión de contenido (CMS, por
sus siglas en inglés) a la par o mejores que sistemas como Wordpress e incluso plataformas de
eCommerce y ERP. La mayor ventaja de este framework radica en la facilidad de aprendizaje y
rapidez de desarrollo que ofrece, esto en parte gracias a estar codificado en Python, teniendo una
filosofía basada en la DRY.
Características:
• Python: “Django es un framework web de alto nivel escrito en Python”. Gracias a esto Django
hereda todas las características y facilidades que nos da Python, entre ellas escribir código bastante
fácil de entender, y sobre todo te permite desarrollar aplicaciones muy rápidas y potentes.
• Rapidez: Django nació en un ambiente periodístico, donde se subían noticias muy rápido, y como los
desarrolladores no pudieron estar a ese ritmo decidieron crear algo que sí lo haga, y así fue como
nace Django, es por eso que ha sido estructurado de tal manera que tus aplicaciones web se crean
muy rápidas
• DRY: ¡No te repitas!, Django utiliza esta filosofía para no crear bloques de código iguales y fomentar
la reutilización del mismo.
• Admin: Django es el único framework que “por defecto” viene con un sistema de administración
activo, ¡listo para ser utilizado sin ningún tipo de configuración.
campusvirtual@inei.gob.pe
• ORM: Para resumir esto, tómalo como una herramienta que te permite realizar consultas SQL a la
Base de Datos, SIN UTILIZAR SQL.
Ejemplos:
Sin ORM:
Con ORM:
Alumno.objects.filter(edad = 17)
Sin ORM:
Con ORM:
Si todo esto no te parece suficiente, Django es el único framework web que crea menos archivos al
momento de iniciar un proyecto, increíblemente tu puedes iniciar un proyecto con tan sólo 5 archivos,
mientras que los otros framework te crean una estructura inmensa al crear un nuevo proyecto,
“Desarrollo rápido, limpio y pragmático”.
Patrones de desarrollo
Estas tres piezas juntas: la lógica de acceso a la base de datos, la lógica de negocios, y la lógica de
presentación, comprenden un concepto que a veces es llamado el patrón de arquitectura de software
Modelo-Vista-Controlador (MVC).
En este patrón:
campusvirtual@inei.gob.pe
Objetivo
Django sigue el patrón MVC tan al pie de la letra que puede ser llamado un framework MVC.
• V, la porción que selecciona qué datos mostrar y cómo mostrarlos, es manejada por la vista y
las plantillas.
• C, la porción que delega a la vista dependiendo de la entrada del usuario, es manejada por el
framework mismo siguiendo tu URLconf y llamando a la función apropiada de Python para la
URL obtenida.
Debido a que la "C" es manejada por el mismo framework y la parte más importante se produce en
los modelos, las plantillas y las vistas, Django es conocido como un Framework MTV.
• M significa "Model" (Modelo), la capa de acceso a la base de datos. Esta capa contiene toda la
información sobre los datos: cómo acceder a estos, cómo validarlos, cuál es el
comportamiento que tiene, y las relaciones entre los datos.
• T significa "Template" (Plantilla), la capa de presentación. Esta capa contiene las decisiones
relacionadas a la presentación: como algunas cosas son mostradas sobre una página web o
otro tipo de documento.
• V significa "View" (Vista), la capa de la lógica de negocios. Esta capa contiene la lógica que
accede al modelo y la delega a la plantilla apropiada: puedes pensar en esto como un puente
entre el modelo y las plantillas.
Video Tutorial