• Save
Turbogears
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,027
On Slideshare
4,010
From Embeds
17
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
5

Embeds 17

http://www.techgig.com 13
http://www.slideshare.net 4

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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