1. Framework MVC para el desarrollo Web - TurboGeras
Esteban Saavedra L´pez
o
CEO Opentelematics Bolivia
jesaavedra@opentelematics.org
estebansaavedra@yahoo.com
http://jesaavedra.opentelematics.org
http://esteban.profesionales.org
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 1 / 45
2. Tabla de Contenidos
1 Frameworks de Desarrollo
2 Turbogears: Framework MVC para el desarrollo de Aplicaciones Web
3 Componentes de Turbogears
4 Instalaci´n de Turbogears
o
5 10 pasos para crear un proyecto
6 Conclusiones
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 2 / 45
3. Frameworks de Desarrollo
Que es un Framework?
Es una estructura de soporte definida en la cual otro proyecto de
software puede ser organizado y desarrollado.
Se han convertido en la piedra angular de la moderna ingenier´
ıa
del software
Es una estructura software compuesta de componentes
personalizables e intercambiables para el desarrollo de una aplicaci´n.
o
En otras palabras, es una aplicaci´n gen´rica incompleta y
o e
configurable a la que podemos aadirle las ultimas piezas para
´
construir una aplicaci´n concreta.
o
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 3 / 45
4. Frameworks de Desarrollo
Cual el objetivo de un framework?
Desarrollo r´pido
a
Desarrollo estructurado
Reutilizaci´n de c´digo
o o
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
o
Tener como aliado a las metodolog´ de desarrollo Ag´ (XP, AD)
ıas ıles
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 4 / 45
5. Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Que es Turbogears
Es un framework para el desarrollo de aplicaciones web
Es la respuesta de python para Ruby on Rails
Permite el desarrollo de aplicaciones web de forma r´pida
a
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 5 / 45
6. Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Filosof´ de TurboGears
ıa
Desarrollar aplicaciones web de forma r´pida, sencilla y divertida
a
Utilizar los mejores componentes actualmente disponibles
Combinar todo en un paquete f´cil de usar
a
Turbogears provee el ”pegamento”, de tal forma que uds no haga el
suyo.
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 6 / 45
7. Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Por que Turbogears
Se basa en el patr´n MVC
o
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentaci´n
o
Es multiplataforma
Posee una numerosa comunidad de desarrolladores y usuarios
Inspirado en Ruby on Rails (Padrino de la mayor´ de los Frameworks)
ıa
Est´ en constante desarrollo (en Camino Turbogears 2.0)
a
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 7 / 45
8. Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web
Patr´n MVC
o
Modelo
Controlador
Vista
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 8 / 45
9. Componentes de Turbogears
Componentes de Turbogears
SQLObject: ORM para el
acceso a Base de datos
CherryPy: Servidor de
Aplicaciones
Kid: Manejo de Plantillas
MochiKit: Manejode Librerias
Javascript/AJAX
TestGears, Nose: Pruebas,
testeos automatizados
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 9 / 45
10. Componentes de Turbogears
SQLObject I
ORM: Mapeador objeto relacional
Las tablas son clases,las filas son instancias(objetos), los campos son
atributos
Elimina la necesidad de escribir SQL
Puese der usado con:
MySQL
PostgreSQL
sqlite
Firebird
Sybase, Oracle (en desarrollo)
Puede generar BD desde Python, o Python desde BD
Puede generar BD desde Python, o Python desde BD
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 10 / 45
11. Componentes de Turbogears
SQLObject II
Soporta relaciones:
una a muchos
muchos a muchos
joins y mucho m´s
a
Apoyo a las transacciones
Puede actualizar conexiones oseosas para minimizar la conexi´n a la
o
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
u a
Sitio Web
http://sqlobject.org/
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 11 / 45
12. Componentes de Turbogears
CherryPy
Framework para aplicaciones web orientadas a objeto
Mapea las solicitudes (request) a m´todos Python usando decoradores
e
Las varibles CGI son mapeadas como argumentos de los m´todos
e
Nativamente no soporta SSL, pero si se trabaja con mod_proxy o
mod_python podemos asegurar el tr´fico
a
Sitio Web
http://www.cherrypy.org
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 12 / 45
13. Componentes de Turbogears
Kid
Las plantillas son constitu´
ıdas por XML
Lenguaje similar a Zope
Compilado a Python byte-code
Procesado usa un parser basado en ElementTree
Soporta herencia de plantillas y emparejado XSLT
Dise˜ador amigable
n
Sitio Web
http://kid.lesscode.org
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 13 / 45
14. Componentes de Turbogears
MochiKit
Biblioteca JavaScript de Python
Bien documentado
Confiable, porciones de prueba automatizados
Importanci´n simple para acceder a todas las caracter´
o ısticas
Sitio Web
http://mochikit.com
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 14 / 45
15. Componentes de Turbogears
MochiKit
Tar´as as´
e ıncronas
Manip´la DOM
u
Abstracci´n de Color
o
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
o Oct. 2007 15 / 45
16. Instalaci´n de Turbogears
o
Instalaci´n de Turbogears
o
Existen varias formas de instalar TG, y tambi´n est´n sujetas al S.O
e a
Haciendo uso de la utilidad easy_install.
Mediante el script tgsetup.py.
http://www.turbogears.org/download/tgsetup.py
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 16 / 45
17. Instalaci´n de Turbogears
o
Proceso de Instalaci´n
o
Instalaci´n
o
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
o Oct. 2007 17 / 45
18. Instalaci´n de Turbogears
o
Informaci´n de la Instalaci´n
o o
Instalaci´n
o
tg-admin info
Sal´
ıda Sal´ Cont.
ıda
TurboGears Complete Version Information Toolbox Gadgets
TurboGears requires: * info (TurboGears 1.0.4b1)
* TurboGears 1.0.4b1 * catwalk (TurboGears 1.0.4b1)
* cElementTree 1.0.5-20051216 ....
* elementtree 1.2.6-20050316 Identity Providers
* SQLAlchemy 0.3.10 * sqlobject (TurboGears 1.0.4b1)
* TurboKid 1.0.3 * sqlalchemy (TurboGears 1.0.4b1)
* TurboJson 1.1 tg-admin Commands
* TurboCheetah 0.9.5 * crud (tgcrud 1.0)
* simplejson 1.7.1 * info (TurboGears 1.0.4b1)
* setuptools 0.6c6 ....
* RuleDispatch 0.5a0.dev-r2306 Visit Managers
* PasteScript 1.3.5 * sqlobject (TurboGears 1.0.4b1)
* FormEncode 0.7.1 * sqlalchemy (TurboGears 1.0.4b1)
* DecoratorTools 1.5 Template Engines
* configobj 4.4.0 * cheetah (TurboCheetah 0.9.5)
* CherryPy 2.2.1 * json (TurboJson 1.1)
* Cheetah 2.0rc8 Widget Packages
* kid 0.9.6 TurboGears Extensions
* RuleDispatch 0.5a0.dev-r2306 * visit (TurboGears 1.0.4b1)
.... * identity (TurboGears 1.0.4b1)
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 18 / 45
19. Instalaci´n de Turbogears
o
Creaci´n de un proyecto
o
Instrucci´n
o
tg-admin quickstart
Detalles del proyecto
Enter project name: Gestion de Charlas
Enter package name [gestiondecharlas]:
Do you need Identity (usernames/passwords) in this project? [no]
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 19 / 45
20. Instalaci´n de Turbogears
o
Creaci´n de un proyecto
o
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
o Oct. 2007 20 / 45
21. Instalaci´n de Turbogears
o
Que gener´ esto? (1)
o
dev.cfg: configuraci´n del entorno de desarrollo
o
README.txt: Indicaciones de como ejecutar la aplicaci´n
o
sample-prod.cfg: configuraci´n del entorno de producci´n
o o
setup.py: l´gica de la estructura y publicaci´n
o o
start-gestiondecharlas.py: Ejecutable de la aplicaci´n
o
gestiondecharlas: directorio donde reside el c´digo de la aplicaci´n
o o
gestiondecharlas.egg-info: directorio de descripci´n de calidad de la
o
aplicaci´n
o
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 21 / 45
22. Instalaci´n de Turbogears
o
Que gener´ esto? (2)
o
controllers.py: L´gica de la aplicaci´n
o o
config: directorio de configuracion de la aplicaci´n
o
json.py: como se representan los objetos con JSON
model.py: como persisten los objetos
release.py: informaci´n de la publicaci´n
o o
static: directorio de JavaScript, CSS, y archivos de imagen
templates: directorio de plantillas
tests: directorio de 3 unidades de pruebas libres
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 22 / 45
23. 10 pasos para crear un proyecto
10 pasos para crear un proyecto
1 Crear el proyecto (Quickstart)
2 Crear el c´digo del modelo de datos
o
3 Crear la base de datos
4 Adicionar algunos datos usando CatWalk
5 Disear las URLs
6 Adecuar m´todos en el controlador
e
7 Adecuar los templates
8 Adicionar algunos CSS y/o JavaScript
9 Construir el egg
10 Publicar la Aplicaci´n
o
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 23 / 45
24. 10 pasos para crear un proyecto
1. Iniciar un proyecto
Instrucci´n
o
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
o Oct. 2007 24 / 45
25. 10 pasos para crear un proyecto
Acceso al proyecto
Instrucci´n
o
http://localhost:8080
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 25 / 45
26. 10 pasos para crear un proyecto
Modelo del 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
o Oct. 2007 26 / 45
27. 10 pasos para crear un proyecto
2. Creando nuestro modelo
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
o Oct. 2007 27 / 45
28. 10 pasos para crear un proyecto
3. Generando el SQL de creaci´n
o
Instrucci´n
o
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
o Oct. 2007 28 / 45
29. 10 pasos para crear un proyecto
4. Uso del Toolbox (catwalk)
Instrucci´n
o
tg-admin toolbox
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 29 / 45
30. 10 pasos para crear un proyecto
5. Mapeo de las URLs
Turbogears permite personalizar la forma en que se visualizar´n las URLs
a
de nuestra aplicaci´n.
o
Ejemplo 1
http://www.dominio.com/proyecto/id/operacion
Ejemplo 2
http://www.dominio.com/proyecto/modulo/operacion/id
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 30 / 45
31. 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
o Oct. 2007 31 / 45
32. 10 pasos para crear un proyecto
7. Adecuando las templates
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
o Oct. 2007 32 / 45
33. 10 pasos para crear un proyecto
Proyecto desplegado
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 33 / 45
34. 10 pasos para crear un proyecto
8. Adicionando CSS y/o Javascript
Adicionar o modificar las hojas de estilo (CSS) y/o los javascript
correspondientes.
Para nuestro ejemplo se encuentran en
Gestion-de-Charlas/gestiondecharlas/static/css y
Gestion-de-Charlas/gestiondecharlas/static/javascript
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 34 / 45
35. 10 pasos para crear un proyecto
8. A˜adiendo un poco de efectos (1)
n
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>
<form a c t i o n=” f i l t r o ” method=”POST”>
${ b u s c a . d i s p l a y ( ) }
<i n p u t t y p e=” s u b m i t ” v a l u e=” F i l t r a r ” />
</ form>
${ 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
o Oct. 2007 35 / 45
36. 10 pasos para crear un proyecto
8. A˜adiendo un poco de efectos (2)
n
Controler.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 . a s i s t e n t e s ” )
def a s i s t e n t e s ( s e l f ) :
....
r e t u r n d i c t ( a s i s t e n t e s=A s i s t e n t e . s e l e c t ( ) ,
a s i s t e n t e 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 =a s i s t e n t e c a m p o s ) ,
b u s c a=w i d g e t s . A u t o C o m p l e t e F i e l d ( name=” c h a r l a ” , s e a r c h c o n t r o l l e r=” s e a r c h ” ,
s e a r c h p a r a m=” i n p u t ” , r e s u l t n a m e=” m a t c h e s ” ) )
@turbogears . expose ( format = ” json ” )
def search ( s e l f , input ) :
lst = []
for charla in Charla . s e l e c t ( ) :
l s t . append ( c h a r l a )
input = input . lower ()
resultado = []
for charla in l s t :
i f charla . t i t u l o . lower ( ) . s t a r t s w i t h ( input ) :
r e s u l t a d o . append ( c h a r l a . t i t u l o )
r e t u r n d i c t ( matches = r e s u l t a d o )
@ 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 . a s i s t e n t e s f i l t r o ” )
def f i l t r o ( s e l f , c h a r l a ) :
lst = []
for asistente in Asistente . select ( ) :
i f a s i s t e n t e . g e t c h a r l a ( ) == c h a r l a [ ” t e x t ” ] :
l s t . append ( a s i s t e n t e )
a s i s t e n t e c a m p o s = [ ( ”Nombre A s i s t e n t e ” , ” nombre ” ) , ( ” Fecha de R e g i s t r o ” , ” f e c h a ” ) ,
(” Charla ” , Asistente . getcharla ) ]
r e t u r n d i c t ( a s i s t e n t e s=l s t , a s i s t e n t e 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 =a s i s t e n t e c a m p o s )
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 36 / 45
37. 10 pasos para crear un proyecto
Filtro para Consulta
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 37 / 45
38. 10 pasos para crear un proyecto
Resultado de la Consulta
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 38 / 45
39. 10 pasos para crear un proyecto
9. Construir el egg
Editar release.py y rellenar los metadatas correspondientes
Crear el egg
Instrucci´n
o
python setup.py bdist_egg
Copiar el egg al host destino donde se instalar´ la aplicaci´n
a o
desarrollada
Instalaci´n del egg
o
easy_install Gestion-de-Charlas-1.0-py2.4.egg
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 39 / 45
40. 10 pasos para crear un proyecto
10. Publicar la aplicaci´n desarrollada
o
Debemos decidir en que servidor publicaremos nuestra aplicaci´n. Algunas
o
alternativas son:
CheryPy-Server (solo para desarrollo y pruebas)
Apache: mod_proxy
Apache: mod_python
nginx
LighTTP
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 40 / 45
41. 10 pasos para crear un proyecto
Ejemplo de aplicacion desarrollada (1)
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 41 / 45
42. 10 pasos para crear un proyecto
Ejemplo de aplicacion desarrollada (1)
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 42 / 45
43. Conclusiones
Conclusiones
Turbogears:
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentaci´n
o
Es multiplataforma
Esta en base a un lenguaje muy poderoso y muy f´cil de aprender
a
como es Python.
Esta en constante desarrollo (en Camino Turbogears 2.0 con muchas
sorpresas)
Al tener como aliado a las metodolog´ de desarrollo Ag´ (XP,
ıas ıles
AD), se convierte en un fuerte candidatos para desarrollo de
aplicaciones web.
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 43 / 45
44. Conclusiones
Preguntas y Agradecimientos
Preguntas
Consultas ?
Agradecimiento
Gracias por su atenci´n
o
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 44 / 45
45. Conclusiones
Links de Referencias
Sitio de Turbogears http://www.turbogears.com
Libro de turbogears http://www.turbogearsbook.com/
Documentaci´n http://docs.turbogears.org/
o
Widgets http://docs.turbogears.org/1.0/Widgets
Esteban Saavedra L´pez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras
o Oct. 2007 45 / 45