Django
Universidad de Costa Rica
Escuela de Ciencias de la Computación e
Informática
Arquitectura de Software
Hecho por:
Esteban Fuentes A5-----
Álvaro Molina A5-----
Roberto Solano A45143
1
Arquitectura Full Stack
Provee un único conjunto de
componentes, cubriendo todo lo
necesario para desarrollar
aplicaciones web y asegurar que esos
componentes funcionen
correctamente entre sí.
Te da todo lo que ocupas para “crear”
tu aplicación web y en gran medida
casi que te obliga a usarlo. Por
2
Qué es Django?
Un framework “full stack” para
aplicaciones web basado en
Creado por Adrian Holovaty, Simon
Wilson, Jacob Kaplan-Moss y Wilson
Miner para World Online en 2003.
Open source desde 2005
Versión 1.0 salió en setiembre del
2008
Parte de
Aplicaciones:
[Link]/hosting/ 3
Python
Creador de:
Trabajaen Google
desde 2005
4
Quien usa Python?
5
Por qué usar Python?
Altamente adaptable
– Los requerimientos cambian
– Lenguaje altamente flexible
– Cambios en los entornos computacionales
Desarrollo rápido
– Para los desarrolladores nuevos y los
experimentados
– El mercado se mueve muy rápido, hay
que emparejarse
Lo mas importante: Fácil de mantener
– Puedes leer tu código de hace un año y
entender rápidamente que es lo que hace
6
Por qué usar un
framework?
URL´s limpias
Componentes con bajo acoplamiento
Diseño amigable de templates
Escribir la menor cantidad de código
posible
Desarrollo realmente rápido
7
Modelo Vista Controlador
8
Ventajas
Es Python.
Es rápido de desarrollar.
Esta pensado para la eficiencia.
Es modular.
Tiene muy bajo acoplamiento.
Genera automáticamente un panel de
administración.
Sus bibliotecas hacen gran parte del
trabajo.
Soporta varias bases de datos
Es MVC.
9
Desventajas
Es Python.
No es tan simple de implantar.
Es mas lento que un framework en un
lenguaje compilado.
No incluye AJAX de serie (todavía).
10
Componentes
Núcleo: maneja la integración con el
web server, mapeo de URL a vista,
errores, configuración, “middleware”.
Modelos: mapeador objeto-relacional,
maneja lógica del dominio.
Vistas:funciones con la lógica de
aplicación.
Plantillas: lógica de presentación. 11
Vista
Ejecutalas operaciones necesarias
para devolver el html al cliente.
Es el encargado de la lógica de
programa.
Hace uso del modelo para extraer los
datos de la base de datos.
Hace uso de las plantillas para
generar el código HTML.
12
Modelo
Define los objetos de nuestra base de
datos.
Permite establecer relaciones entre los
objetos.
Una vez definidos nos permite crearlos
en nuestra base de datos.
Una vez creados nuestros objetos nos
permite acceder a ellos
13
Plantillas
Nos permiten crear la presentación de
los datos.
Genera html a partir de un código
html y una serie de variables y
estructuras simples.
Las plantillas que incluye django
soportan herencia, bucles,
bifurcaciones, variables y filtros.
14
Ejemplo MVC
15
Flujo Request/Response
16
Rails vs Django
17
Opciones de Deployment
Servidor
• Apache(mod_python)
• WSGI
FastCGI/SCGI/Twisted
Base de datos
• PostgreSQL
• MySQL
• SQLite
• MSSQL y Oracle en camino
18
Links sobre Django
[Link]
[Link]
on/
[Link] [google groups]
[Link]
tutorial/
Ben Askins and Alan Green.(2007). A
Rails / Django Comparison. The Python
Papers,
Volume 2, Issue 2. Disponible en
19