45
Framework MVC para el desarrollo Web - TurboGeras Esteban Saavedra L´ opez CEO Opentelematics Bolivia [email protected] [email protected] http://jesaavedra.opentelematics.org http://esteban.profesionales.org Esteban Saavedra L´ opez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 1 / 45

Turbogears Framework para el desarrollo de aplicaciones web

Embed Size (px)

DESCRIPTION

TurbogearsFramework para eldesarrollo deaplicaciones web

Citation preview

Page 1: Turbogears Framework para el desarrollo de aplicaciones web

Framework MVC para el desarrollo Web - TurboGeras

Esteban Saavedra Lopez

CEO Opentelematics [email protected]@yahoo.com

http://jesaavedra.opentelematics.orghttp://esteban.profesionales.org

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 1 / 45

Page 2: Turbogears Framework para el desarrollo de aplicaciones web

Tabla de Contenidos

1 Frameworks de Desarrollo

2 Turbogears: Framework MVC para el desarrollo de Aplicaciones Web

3 Componentes de Turbogears

4 Instalacion de Turbogears

5 10 pasos para crear un proyecto

6 Conclusiones

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 2 / 45

Page 3: Turbogears Framework para el desarrollo de aplicaciones web

Frameworks de Desarrollo

Que es un Framework?

Es una estructura de soporte definida en la cual otro proyecto desoftware puede ser organizado y desarrollado.

Se han convertido en la piedra angular de la moderna ingenierıadel software

Es una estructura software compuesta de componentespersonalizables e intercambiables para el desarrollo de una aplicacion.En otras palabras, es una aplicacion generica incompleta yconfigurable a la que podemos aadirle las ultimas piezas paraconstruir una aplicacion concreta.

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 3 / 45

Page 4: Turbogears Framework para el desarrollo de aplicaciones web

Frameworks de Desarrollo

Cual el objetivo de un framework?

Desarrollo rapido

Desarrollo estructurado

Reutilizacion de codigo

Disminuir el esfuerzo en el desarrollo

Aprovechamos las funcionalidades ya implementadas.

No debemos reinventar la rueda

Nos concetramos directamente en la solucion del problema

Tener como aliado a las metodologıas de desarrollo Agıles (XP, AD)

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 4 / 45

Page 5: Turbogears Framework para el desarrollo de aplicaciones web

Turbogears: Framework MVC para el desarrollo de AplicacionesWeb

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 rapida

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 5 / 45

Page 6: Turbogears Framework para el desarrollo de aplicaciones web

Turbogears: Framework MVC para el desarrollo de AplicacionesWeb

Filosofıa de TurboGears

Desarrollar aplicaciones web de forma rapida, sencilla y divertida

Utilizar los mejores componentes actualmente disponibles

Combinar todo en un paquete facil de usar

Turbogears provee el ”pegamento”, de tal forma que uds no haga elsuyo.

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 6 / 45

Page 7: Turbogears Framework para el desarrollo de aplicaciones web

Turbogears: Framework MVC para el desarrollo de AplicacionesWeb

Por que Turbogears

Se basa en el patron MVC

Tiene todo lo necesario para desarrollar aplicaciones Web

Soporta Ajax

Posee buena documentacion

Es multiplataforma

Posee una numerosa comunidad de desarrolladores y usuarios

Inspirado en Ruby on Rails (Padrino de la mayorıa de los Frameworks)

Esta en constante desarrollo (en Camino Turbogears 2.0)

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 7 / 45

Page 8: Turbogears Framework para el desarrollo de aplicaciones web

Turbogears: Framework MVC para el desarrollo de AplicacionesWeb

Patron MVC

Modelo

Controlador

Vista

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 8 / 45

Page 9: Turbogears Framework para el desarrollo de aplicaciones web

Componentes de Turbogears

Componentes de Turbogears

SQLObject: ORM para elacceso a Base de datos

CherryPy: Servidor deAplicaciones

Kid: Manejo de Plantillas

MochiKit: Manejode LibreriasJavascript/AJAX

TestGears, Nose: Pruebas,testeos automatizados

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 9 / 45

Page 10: Turbogears Framework para el desarrollo de aplicaciones web

Componentes de Turbogears

SQLObject I

ORM: Mapeador objeto relacional

Las tablas son clases,las filas son instancias(objetos), los campos sonatributos

Elimina la necesidad de escribir SQL

Puese der usado con:

MySQLPostgreSQLsqliteFirebirdSybase, Oracle (en desarrollo)Puede generar BD desde Python, o Python desde BD

Puede generar BD desde Python, o Python desde BD

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 10 / 45

Page 11: Turbogears Framework para el desarrollo de aplicaciones web

Componentes de Turbogears

SQLObject II

Soporta relaciones:

una a muchosmuchos a muchosjoins y mucho mas

Apoyo a las transacciones

Puede actualizar conexiones oseosas para minimizar la conexion a laBD

Los result set pueden ser divididos en diferentes SQL

Los object cache son recuperados desde la DB

Puede funcionar aun si el SQL esta lleno u ocupado

Sitio Web

http://sqlobject.org/

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 11 / 45

Page 12: Turbogears Framework para el desarrollo de aplicaciones web

Componentes de Turbogears

CherryPy

Framework para aplicaciones web orientadas a objeto

Mapea las solicitudes (request) a metodos Python usando decoradores

Las varibles CGI son mapeadas como argumentos de los metodos

Nativamente no soporta SSL, pero si se trabaja con mod_proxy omod_python podemos asegurar el trafico

Sitio Web

http://www.cherrypy.org

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 12 / 45

Page 13: Turbogears Framework para el desarrollo de aplicaciones web

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

Disenador amigable

Sitio Web

http://kid.lesscode.org

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 13 / 45

Page 14: Turbogears Framework para el desarrollo de aplicaciones web

Componentes de Turbogears

MochiKit

Biblioteca JavaScript de Python

Bien documentado

Confiable, porciones de prueba automatizados

Importancion simple para acceder a todas las caracterısticas

Sitio Web

http://mochikit.com

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 14 / 45

Page 15: Turbogears Framework para el desarrollo de aplicaciones web

Componentes de Turbogears

MochiKit

Tareas asıncronas

Manipula DOM

Abstraccion de Color

Fecha y Hora

Formateo de Cadenas

Shell de JavaScript interactivo

Efectos Visuales

Manejo de Logs

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 15 / 45

Page 16: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Instalacion de Turbogears

Existen varias formas de instalar TG, y tambien estan sujetas al S.O

Haciendo uso de la utilidad easy_install.

Mediante el script tgsetup.py.http://www.turbogears.org/download/tgsetup.py

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 16 / 45

Page 17: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Proceso de Instalacion

Instalacionsudo python tgsetup.py

SalıdaTurboGears 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 Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 17 / 45

Page 18: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Informacion de la Instalacion

Instalaciontg-admin info

SalıdaTurboGears Complete Version Information

TurboGears requires:

* TurboGears 1.0.4b1

* cElementTree 1.0.5-20051216

* elementtree 1.2.6-20050316

* SQLAlchemy 0.3.10

* TurboKid 1.0.3

* TurboJson 1.1

* TurboCheetah 0.9.5

* simplejson 1.7.1

* setuptools 0.6c6

* RuleDispatch 0.5a0.dev-r2306

* PasteScript 1.3.5

* FormEncode 0.7.1

* DecoratorTools 1.5

* configobj 4.4.0

* CherryPy 2.2.1

* Cheetah 2.0rc8

* kid 0.9.6

* RuleDispatch 0.5a0.dev-r2306

....

Salıda Cont.Toolbox Gadgets

* info (TurboGears 1.0.4b1)

* catwalk (TurboGears 1.0.4b1)

....

Identity Providers

* sqlobject (TurboGears 1.0.4b1)

* sqlalchemy (TurboGears 1.0.4b1)

tg-admin Commands

* crud (tgcrud 1.0)

* info (TurboGears 1.0.4b1)

....

Visit Managers

* sqlobject (TurboGears 1.0.4b1)

* sqlalchemy (TurboGears 1.0.4b1)

Template Engines

* cheetah (TurboCheetah 0.9.5)

* json (TurboJson 1.1)

Widget Packages

TurboGears Extensions

* visit (TurboGears 1.0.4b1)

* identity (TurboGears 1.0.4b1)

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 18 / 45

Page 19: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Creacion de un proyecto

Instrucciontg-admin quickstart

Detalles del proyectoEnter project name: Gestion de Charlas

Enter package name [gestiondecharlas]:

Do you need Identity (usernames/passwords) in this project? [no]

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 19 / 45

Page 20: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Creacion de un proyecto

SalıdaSelected 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 Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 20 / 45

Page 21: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Que genero esto? (1)

dev.cfg: configuracion del entorno de desarrollo

README.txt: Indicaciones de como ejecutar la aplicacion

sample-prod.cfg: configuracion del entorno de produccion

setup.py: logica de la estructura y publicacion

start-gestiondecharlas.py: Ejecutable de la aplicacion

gestiondecharlas: directorio donde reside el codigo de la aplicacion

gestiondecharlas.egg-info: directorio de descripcion de calidad de laaplicacion

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 21 / 45

Page 22: Turbogears Framework para el desarrollo de aplicaciones web

Instalacion de Turbogears

Que genero esto? (2)

controllers.py: Logica de la aplicacion

config: directorio de configuracion de la aplicacion

json.py: como se representan los objetos con JSON

model.py: como persisten los objetos

release.py: informacion de la publicacion

static: directorio de JavaScript, CSS, y archivos de imagen

templates: directorio de plantillas

tests: directorio de 3 unidades de pruebas libres

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 22 / 45

Page 23: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

10 pasos para crear un proyecto

1 Crear el proyecto (Quickstart)

2 Crear el codigo del modelo de datos

3 Crear la base de datos

4 Adicionar algunos datos usando CatWalk

5 Disear las URLs

6 Adecuar metodos en el controlador

7 Adecuar los templates

8 Adicionar algunos CSS y/o JavaScript

9 Construir el egg

10 Publicar la Aplicacion

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 23 / 45

Page 24: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

1. Iniciar un proyecto

Instruccionpython start-evento.py

Salıda2007-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 Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 24 / 45

Page 25: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Acceso al proyecto

Instruccionhttp://localhost:8080

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 25 / 45

Page 26: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Modelo del proyecto

model.py

from s q l o b j e c t import ∗from t u r b o g e a r s . da tabase import PackageHub

hub = PackageHub ( ” evento ” )c o n n e c t i o n = hub

# c l a s s YourDataClass ( SQLObject ) :# pas s

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 26 / 45

Page 27: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

2. Creando nuestro modelo

model.py

c l a s s Char l a ( SQLObject ) :t i t u l o = S t r i n gCo l ( l e n g t h =25)au to r = S t r i n gCo l ( l e n g t h =25)resumen = S t r i n gCo l ( )f e cha = DateTimeCol ( d e f a u l t=date t ime . now)a s i s t e n t e = Mu l t i p l e J o i n ( ” A s i s t e n t e ” )

c l a s s A s i s t e n t e ( SQLObject ) :nombre = S t r i n gCo l ( l e n g t h =25)f e cha = DateTimeCol ( d e f a u l t=date t ime . now)c h a r l a i d = Fore ignKey ( ” Cha r l a ” )

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 27 / 45

Page 28: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

3. Generando el SQL de creacion

Instrucciontg-admin sql sql

Salıda

Using database URI mysql : // u s u a r i o : u12345@ loca l ho s t / eventoCREATE TABLE c h a r l a (

i d INT PRIMARY KEY AUTO INCREMENT,t i t u l o VARCHAR( 25 ) ,au to r VARCHAR( 25 ) ,resumen TEXT,f e cha DATETIME

) ;CREATE TABLE a s i s t e n t e (

i d INT PRIMARY KEY AUTO INCREMENT,nombre VARCHAR( 25 ) ,f e cha DATETIME,c h a r l a i d INT

) ;

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 28 / 45

Page 29: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

4. Uso del Toolbox (catwalk)

Instrucciontg-admin toolbox

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 29 / 45

Page 30: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

5. Mapeo de las URLs

Turbogears permite personalizar la forma en que se visualizaran las URLsde nuestra aplicacion.

Ejemplo 1

http://www.dominio.com/proyecto/id/operacion

Ejemplo 2

http://www.dominio.com/proyecto/modulo/operacion/id

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 30 / 45

Page 31: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

6. Adecuando el controlador

controller.py

@expose ( t emp la t e=” g e s t i o n d e c h a r l a s . t emp l a t e s . c h a r l a s ” )def c h a r l a s ( s e l f ) :

cha r l a campos = [ ( ” T i t u l o Cha r l a ” , ” t i t u l o ” ) ,( ”Autor ” , ” au to r ” ) ,( ”Resumen de l a Cha r l a ” , ” resumen” ) ,( ”Fechan” , ” f e cha ” ) , ]

r e t u r n d i c t ( c h a r l a s=Cha r l a . s e l e c t ( ) ,c h a r l a w i d g e t=w idge t s . DataGr id ( f i e l d s=cha r l a campos ) )

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 31 / 45

Page 32: Turbogears Framework para el desarrollo de aplicaciones web

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” ” ht tp : //www. w3 . org /TR/ xhtml1 /DTD/xhtml1−t r a n s i t i o n a l . dtd ”><html xmlns=” ht tp : //www.w3 . org /1999/ xhtml ” xmlns : py=” ht tp : // p u r l . o rg / k i d / ns#”

py : e x t end s=” ’ master . k id ’ ”><head><meta content=” t e x t / html ; c h a r s e t=ut f−8” http−equ i v=”Content−Type” py : r e p l a c e=” ’ ’ ”/><t i t l e>L i s t a de Cha 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 Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 32 / 45

Page 33: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Proyecto desplegado

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 33 / 45

Page 34: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

8. Adicionando CSS y/o Javascript

Adicionar o modificar las hojas de estilo (CSS) y/o los javascriptcorrespondientes.

Para nuestro ejemplo se encuentran enGestion-de-Charlas/gestiondecharlas/static/css yGestion-de-Charlas/gestiondecharlas/static/javascript

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 34 / 45

Page 35: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

8. Anadiendo un poco de efectos (1)

asistentes.kid

<!DOCTYPE html PUBLIC ”−//W3C//DTD XHTML 1 .0 T r a n s i t i o n a l //EN” ” ht tp : //www. w3 . org /TR/ xhtml1 /DTD/xhtml1−t r a n s i t i o n a l . dtd ”><html xmlns=” ht tp : //www.w3 . org /1999/ xhtml ” xmlns : py=” ht tp : // p u r l . o rg / k i d / ns#”

py : e x t end s=” ’ master . k id ’ ”><head><meta content=” t e x t / html ; c h a r s e t=ut f−8” http−equ i v=”Content−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 ac t i on=” f i l t r o ” method=”POST”>${busca . d i s p l a y ()}

<i npu t type=” submit ” va lue=” 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 Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 35 / 45

Page 36: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

8. Anadiendo un poco de efectos (2)

Controler.py

@expose ( t emp la t e=” g e s t i o n d e c h a r l a s . t emp 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 idge t s . DataGr id ( f i e l d s=a s i s t e n t e c ampo s ) ,busca=w idge t s . AutoComple teF i e ld ( 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 ea rch pa ram=” i npu t ” , r e s u l t n ame=”matches ” ) )@tu rbogea r s . expose ( fo rmat = ” j s o n ” )def s e a r c h ( s e l f , i n pu t ) :

l s t = [ ]f o r c h a r l a i n Char l a . s e l e c t ( ) :

l s t . append ( c h a r l a )i n pu t = i npu t . l owe r ( )r e s u l t a d o = [ ]f o r c h a r l a i n l s t :

i f c h a r l a . t i t u l o . l owe r ( ) . s t a r t s w i t h ( i n pu t ) :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 )@expose ( t emp la t e=” g e s t i o n d e c h a r l a s . t emp 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 ) :

l s t = [ ]f o r a s i s t e n t e i n A s i s t e n t e . s e l e c t ( ) :

i f a s i s t e n t e . g e t c h a r l a ( ) == ch 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 ampo s = [ ( ”Nombre A s i s t e n t e ” , ”nombre” ) , ( ”Fecha de R e g i s t r o ” , ” f e cha ” ) ,( ” Cha r l a ” , A s i s t e n t e . g e t c h a r l a ) ]

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 idge t s . DataGr id ( f i e l d s=a s i s t e n t e c ampo s ) )

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 36 / 45

Page 37: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Filtro para Consulta

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 37 / 45

Page 38: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Resultado de la Consulta

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 38 / 45

Page 39: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

9. Construir el egg

Editar release.py y rellenar los metadatas correspondientes

Crear el egg

Instruccionpython setup.py bdist_egg

Copiar el egg al host destino donde se instalara la aplicaciondesarrollada

Instalacion del eggeasy_install Gestion-de-Charlas-1.0-py2.4.egg

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 39 / 45

Page 40: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

10. Publicar la aplicacion desarrollada

Debemos decidir en que servidor publicaremos nuestra aplicacion. Algunasalternativas son:

CheryPy-Server (solo para desarrollo y pruebas)

Apache: mod_proxy

Apache: mod_python

nginx

LighTTP

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 40 / 45

Page 41: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 41 / 45

Page 42: Turbogears Framework para el desarrollo de aplicaciones web

10 pasos para crear un proyecto

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 42 / 45

Page 43: Turbogears Framework para el desarrollo de aplicaciones web

Conclusiones

Conclusiones

Turbogears:

Tiene todo lo necesario para desarrollar aplicaciones Web

Soporta Ajax

Posee buena documentacion

Es multiplataforma

Esta en base a un lenguaje muy poderoso y muy facil de aprendercomo es Python.

Esta en constante desarrollo (en Camino Turbogears 2.0 con muchassorpresas)

Al tener como aliado a las metodologıas de desarrollo Agıles (XP,AD), se convierte en un fuerte candidatos para desarrollo deaplicaciones web.

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 43 / 45

Page 44: Turbogears Framework para el desarrollo de aplicaciones web

Conclusiones

Preguntas y Agradecimientos

Preguntas

Consultas ?

Agradecimiento

Gracias por su atencion

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 44 / 45

Page 45: Turbogears Framework para el desarrollo de aplicaciones web

Conclusiones

Links de Referencias

Sitio de Turbogears http://www.turbogears.com

Libro de turbogears http://www.turbogearsbook.com/

Documentacion http://docs.turbogears.org/

Widgets http://docs.turbogears.org/1.0/Widgets

Esteban Saavedra Lopez (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 45 / 45