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:
code.google.com/hosting/
3
Python Creador
de:
Trabaja
en 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 Diseño Escribir
con bajo acoplamiento
amigable de templates la menor cantidad de código
posible Desarrollo
realmente rápido 7
Modelo Vista Controlador
8
Ventajas Es Es
Python. 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 Ejecuta
las 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
datos.
los objetos de nuestra base de
Permite
objetos.
establecer relaciones entre los
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 http://djangobook.com http://djangoproject.com/documentati
on/ http://www.django.es [google groups] http://davidasorey.net/static/djangotutorial/ Ben Askins and Alan Green.(2007). A Rails / Django Comparison. The Python Papers, Volume 2, Issue 2. Disponible en 19