Professional Documents
Culture Documents
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 1 / 45
Tabla de Contenidos
1 Frameworks de Desarrollo
3 Componentes de Turbogears
4 Instalación de Turbogears
6 Conclusiones
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 2 / 45
Frameworks de Desarrollo
Que es un Framework?
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 3 / 45
Frameworks de Desarrollo
Desarrollo rápido
Desarrollo estructurado
Reutilización de código
Disminuir el esfuerzo en el desarrollo
Aprovechamos las funcionalidades ya implementadas.
No debemos reinventar la rueda
Nos concetramos directamente en la solución del problema
Tener como aliado a las metodologı́as de desarrollo Agı́les (XP, AD)
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 4 / 45
Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Que es Turbogears
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 5 / 45
Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Filosofı́a de TurboGears
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 6 / 45
Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 7 / 45
Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Patrón MVC
Modelo
Controlador
Vista
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 8 / 45
Componentes de Turbogears
Componentes de Turbogears
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 9 / 45
Componentes de Turbogears
SQLObject I
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 10 / 45
Componentes de Turbogears
SQLObject II
Soporta relaciones:
una a muchos
muchos a muchos
joins y mucho más
Apoyo a las transacciones
Puede actualizar conexiones oseosas para minimizar la conexión a la
BD
Los result set pueden ser divididos en diferentes SQL
Los object cache son recuperados desde la DB
Puede funcionar aún si el SQL está lleno u ocupado
Sitio Web
http://sqlobject.org/
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 11 / 45
Componentes de Turbogears
CherryPy
Sitio Web
http://www.cherrypy.org
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 12 / 45
Componentes de Turbogears
Kid
Sitio Web
http://kid.lesscode.org
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 13 / 45
Componentes de Turbogears
MochiKit
Sitio Web
http://mochikit.com
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 14 / 45
Componentes de Turbogears
MochiKit
Taréas ası́ncronas
Manipúla DOM
Abstracción de Color
Fecha y Hora
Formateo de Cadenas
Shell de JavaScript interactivo
Efectos Visuales
Manejo de Logs
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 15 / 45
Instalación de Turbogears
Instalación de Turbogears
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 16 / 45
Instalación de Turbogears
Proceso de Instalación
Instalación
sudo python tgsetup.py
Salı́da
TurboGears Installer
Beginning setuptools/EasyInstall installation and TurboGears download
Downloading http://cheeseshop.python.org/packages/2.4/s/setuptools/setuptools-0.6c6-py2.4.egg
Processing setuptools-0.6c6-py2.4.egg
.....
Installing easy_install-2.4 script to /usr/local/bin
Installed /usr/lib/python2.4/site-packages/TurboGears-1.0.4b1-py2.4.egg
Reading http://files.turbogears.org/eggs/
....
sqlalchemy.__init__: module references __file__
Adding SQLAlchemy 0.3.10 to easy-install.pth file
Installed /usr/lib/python2.4/site-packages/SQLAlchemy-0.3.10-py2.4.egg
....
Adding TurboKid 1.0.3 to easy-install.pth file
Installed /usr/lib/python2.4/site-packages/TurboKid-1.0.3-py2.4.egg
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 17 / 45
Instalación de Turbogears
Información de la Instalación
Instalación
tg-admin info
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 18 / 45
Instalación de Turbogears
Creación de un proyecto
Instrucción
tg-admin quickstart
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 19 / 45
Instalación de Turbogears
Creación de un proyecto
Salı́da
Selected and implied templates:
TurboGears#tgbase tg base template
TurboGears#turbogears web framework
Variables:
egg: Gestion_de_Charlas
elixir: False
identity: none
package: gestiondecharlas
project: Gestion-de-Charlas
sqlalchemy: False
sqlobject: True
Creating template tgbase
Creating directory ./Gestion-de-Charlas
Recursing into +einame+.egg-info
Creating ./Gestion-de-Charlas/Gestion_de_Charlas.egg-info/
Copying PKG-INFO to ./Gestion-de-Charlas/Gestion_de_Charlas.egg-info/PKG-INFO
....
Running /usr/bin/python setup.py egg_info
Adding TurboGears to paster_plugins.txt
running egg_info
writing requirements to Gestion_de_Charlas.egg-info/requires.txt
writing Gestion_de_Charlas.egg-info/PKG-INFO
writing top-level names to Gestion_de_Charlas.egg-info/top_level.txt
writing dependency_links to Gestion_de_Charlas.egg-info/dependency_links.txt
reading manifest file ’Gestion_de_Charlas.egg-info/SOURCES.txt’
writing manifest file ’Gestion_de_Charlas.egg-info/SOURCES.txt’
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 20 / 45
Instalación de Turbogears
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 21 / 45
Instalación de Turbogears
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 22 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 23 / 45
10 pasos para crear un proyecto
1. Iniciar un proyecto
Instrucción
python start-evento.py
Salı́da
2007-10-04 11:43:41,284 cherrypy.msg INFO CONFIG: Server parameters:
2007-10-04 11:43:41,285 cherrypy.msg INFO CONFIG: server.environment: development
2007-10-04 11:43:41,285 cherrypy.msg INFO CONFIG: server.log_to_screen: True
2007-10-04 11:43:41,285 cherrypy.msg INFO CONFIG: server.log_file:
2007-10-04 11:43:41,286 cherrypy.msg INFO CONFIG: server.log_tracebacks: True
2007-10-04 11:43:41,286 cherrypy.msg INFO CONFIG: server.log_request_headers: True
2007-10-04 11:43:41,286 cherrypy.msg INFO CONFIG: server.protocol_version: HTTP/1.0
2007-10-04 11:43:41,287 cherrypy.msg INFO CONFIG: server.socket_host:
2007-10-04 11:43:41,287 cherrypy.msg INFO CONFIG: server.socket_port: 8080
2007-10-04 11:43:41,287 cherrypy.msg INFO CONFIG: server.socket_file:
2007-10-04 11:43:41,287 cherrypy.msg INFO CONFIG: server.reverse_dns: False
2007-10-04 11:43:41,288 cherrypy.msg INFO CONFIG: server.socket_queue_size: 5
2007-10-04 11:43:41,288 cherrypy.msg INFO CONFIG: server.thread_pool: 10
2007-10-04 11:43:45,472 cherrypy.msg INFO HTTP: Serving HTTP on http://localhost:8080/
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 24 / 45
10 pasos para crear un proyecto
Acceso al proyecto
Instrucción
http://localhost:8080
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 25 / 45
10 pasos para crear un proyecto
model.py
from s q l o b j e c t i m p o r t ∗
from t u r b o g e a r s . d a t a b a s e i m p o r t PackageHub
hub = PackageHub ( ” e v e n t o ” )
connection = hub
# c l a s s Y o u r D a t a C l a s s ( SQLObject ) :
# pass
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 26 / 45
10 pasos para crear un proyecto
model.py
c l a s s C h a r l a ( SQLObject ) :
t i t u l o = S t r i n g C o l ( l e n g t h =25)
a u t o r = S t r i n g C o l ( l e n g t h =25)
resumen = S t r i n g C o l ( )
f e c h a = DateTimeCol ( d e f a u l t=d a t e t i m e . now )
asistente = MultipleJoin (” Asistente ”)
c l a s s A s i s t e n t e ( SQLObject ) :
nombre = S t r i n g C o l ( l e n g t h =25)
f e c h a = DateTimeCol ( d e f a u l t=d a t e t i m e . now )
c h a r l a i d = ForeignKey ( ” Charla ” )
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 27 / 45
10 pasos para crear un proyecto
Instrucción
tg-admin sql sql
Salı́da
U s i n g d a t a b a s e URI m y s q l : / / u s u a r i o : u 1 2 3 4 5 @ l o c a l h o s t / e v e n t o
CREATE TABLE c h a r l a (
i d INT PRIMARY KEY AUTO INCREMENT ,
t i t u l o VARCHAR( 2 5 ) ,
a u t o r VARCHAR( 2 5 ) ,
r e s u m e n TEXT,
f e c h a DATETIME
);
CREATE TABLE a s i s t e n t e (
i d INT PRIMARY KEY AUTO INCREMENT ,
nombre VARCHAR( 2 5 ) ,
f e c h a DATETIME ,
c h a r l a i d INT
);
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 28 / 45
10 pasos para crear un proyecto
Instrucción
tg-admin toolbox
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 29 / 45
10 pasos para crear un proyecto
Ejemplo 2
http://www.dominio.com/proyecto/modulo/operacion/id
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 30 / 45
10 pasos para crear un proyecto
6. Adecuando el controlador
controller.py
@ e x p o s e ( t e m p l a t e=” g e s t i o n d e c h a r l a s . t e m p l a t e s . c h a r l a s ” )
def c h a r l a s ( s e l f ) :
charla campos = [ ( ” Titulo Charla ” ,” t i t u l o ” ) ,
( ” Autor ” , ” a u t o r ” ) ,
( ” Resumen de l a C h a r l a ” , ” r e s u me n ” ) ,
( ” Fechan ” , ” f e c h a ” ) , ]
r e t u r n d i c t ( c h a r l a s=C h a r l a . s e l e c t ( ) ,
c h a r l a w i d g e t=w i d g e t s . D a t a G r i d ( f i e l d s =c h a r l a c a m p o s ) )
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 31 / 45
10 pasos para crear un proyecto
charlas.kid
<!DOCTYPE html PUBLIC ”−//W3C//DTD XHTML 1 . 0 T r a n s i t i o n a l //EN” ” h t t p : / /www . w3 . o r g /TR/ x h t m l 1 /D
<html xmlns=” h t t p : / /www . w3 . o r g /1999/ x h t m l ” xmlns : py=” h t t p : / / p u r l . o r g / k i d / n s#”
py : e x t e n d s=” ’ m a s t e r . k i d ’ ”>
<head>
<meta c o n t e n t=” t e x t / h t m l ; c h a r s e t=u t f −8” h t t p−e q u i v=” C o n t e n t−Type ” py : r e p l a c e=” ’ ’ ” />
< t i t l e>L i s t a de C h a r l a s</ t i t l e>
</ head>
<body>
${ c h a r l a w i d g e t . d i s p l a y ( c h a r l a s )}
</ body>
</ html>
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 32 / 45
10 pasos para crear un proyecto
Proyecto desplegado
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 33 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 34 / 45
10 pasos para crear un proyecto
asistentes.kid
<!DOCTYPE html PUBLIC ”−//W3C//DTD XHTML 1 . 0 T r a n s i t i o n a l //EN” ” h t t p : / /www . w3 . o r g /TR/ x h t m l 1 /D
<html xmlns=” h t t p : / /www . w3 . o r g /1999/ x h t m l ” xmlns : py=” h t t p : / / p u r l . o r g / k i d / n s#”
py : e x t e n d s=” ’ m a s t e r . k i d ’ ”>
<head>
<meta c o n t e n t=” t e x t / h t m l ; c h a r s e t=u t f −8” h t t p−e q u i v=” C o n t e n t−Type ” py : r e p l a c e=” ’ ’ ” />
< t i t l e>L i s t a de A s i s t e n t e s</ t i t l e>
</ head>
<body>
${ a s i s t e n t e w i d g e t . d i s p l a y ( a s i s t e n t e s )}
</ body>
</ html>
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 35 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 36 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 37 / 45
10 pasos para crear un proyecto
Resultado de la Consulta
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 38 / 45
10 pasos para crear un proyecto
9. Construir el egg
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 39 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 40 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 41 / 45
10 pasos para crear un proyecto
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 42 / 45
Conclusiones
Conclusiones
Turbogears:
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentación
Es multiplataforma
Esta en base a un lenguaje muy poderoso y muy fácil de aprender
como es Python.
Esta en constante desarrollo (en Camino Turbogears 2.0 con muchas
sorpresas)
Al tener como aliado a las metodologı́as de desarrollo Agı́les (XP,
AD), se convierte en un fuerte candidatos para desarrollo de
aplicaciones web.
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 43 / 45
Conclusiones
Preguntas y Agradecimientos
Preguntas
Consultas ?
Agradecimiento
Gracias por su atención
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 44 / 45
Conclusiones
Links de Referencias
Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 45 / 45