You are on page 1of 45

Framework MVC para el desarrollo Web - TurboGeras

Esteban Saavedra López

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 Oct. 2007 1 / 45
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

5 10 pasos para crear un proyecto

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?

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.
En otras palabras, es una aplicación genérica incompleta y
configurable a la que podemos aadirle las últimas piezas para
construir una aplicación concreta.

Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 3 / 45
Frameworks de Desarrollo

Cual el objetivo de un framework?

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

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

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

Desarrollar aplicaciones web de forma rápida, sencilla y divertida


Utilizar los mejores componentes actualmente disponibles
Combinar todo en un paquete fácil de usar
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 Oct. 2007 6 / 45
Turbogears: Framework MVC para el desarrollo de Aplicaciones
Web

Por que Turbogears

Se basa en el patrón MVC


Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentación
Es multiplataforma
Posee una numerosa comunidad de desarrolladores y usuarios
Inspirado en Ruby on Rails (Padrino de la mayorı́a de los Frameworks)
Está en constante desarrollo (en Camino Turbogears 2.0)

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

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 Oct. 2007 9 / 45
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 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

Framework para aplicaciones web orientadas a objeto


Mapea las solicitudes (request) a métodos Python usando decoradores
Las varibles CGI son mapeadas como argumentos de los métodos
Nativamente no soporta SSL, pero si se trabaja con mod_proxy o
mod_python podemos asegurar el tráfico

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

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

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

Biblioteca JavaScript de Python


Bien documentado
Confiable, porciones de prueba automatizados
Importanción simple para acceder a todas las caracterı́sticas

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

Existen varias formas de instalar TG, y también están 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 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

Salı́da Salı́da Cont.


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 Oct. 2007 18 / 45
Instalación de Turbogears

Creación de un proyecto

Instrucción
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 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

Que generó esto? (1)

dev.cfg: configuración del entorno de desarrollo


README.txt: Indicaciones de como ejecutar la aplicación
sample-prod.cfg: configuración del entorno de producción
setup.py: lógica de la estructura y publicación
start-gestiondecharlas.py: Ejecutable de la aplicación
gestiondecharlas: directorio donde reside el código de la aplicación
gestiondecharlas.egg-info: directorio de descripción de calidad de la
aplicación

Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 21 / 45
Instalación de Turbogears

Que generó esto? (2)

controllers.py: Lógica de la aplicación


config: directorio de configuracion de la aplicación
json.py: como se representan los objetos con JSON
model.py: como persisten los objetos
release.py: información de la publicación
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 Oct. 2007 22 / 45
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
3 Crear la base de datos
4 Adicionar algunos datos usando CatWalk
5 Disear las URLs
6 Adecuar métodos en el controlador
7 Adecuar los templates
8 Adicionar algunos CSS y/o JavaScript
9 Construir el egg
10 Publicar la Aplicación

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

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 Oct. 2007 26 / 45
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 Oct. 2007 27 / 45
10 pasos para crear un proyecto

3. Generando el SQL de creación

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

4. Uso del Toolbox (catwalk)

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

5. Mapeo de las URLs

Turbogears permite personalizar la forma en que se visualizarán las URLs


de nuestra aplicación.
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 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

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 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

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 Oct. 2007 34 / 45
10 pasos para crear un proyecto

8. Añadiendo 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” ” 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 Oct. 2007 35 / 45
10 pasos para crear un proyecto

8. Añadiendo un poco de efectos (2)


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 Oct. 2007 36 / 45
10 pasos para crear un proyecto

Filtro para Consulta

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

Editar release.py y rellenar los metadatas correspondientes


Crear el egg
Instrucción
python setup.py bdist_egg

Copiar el egg al host destino donde se instalará la aplicación


desarrollada
Instalación del egg
easy_install Gestion-de-Charlas-1.0-py2.4.egg

Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 39 / 45
10 pasos para crear un proyecto

10. Publicar la aplicación desarrollada

Debemos decidir en que servidor publicaremos nuestra aplicación. Algunas


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 Oct. 2007 40 / 45
10 pasos para crear un proyecto

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra López (Opentelematics) Framework MVC para el desarrollo Web - TurboGeras Oct. 2007 41 / 45
10 pasos para crear un proyecto

Ejemplo de aplicacion desarrollada (1)

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

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


Libro de turbogears http://www.turbogearsbook.com/
Documentación http://docs.turbogears.org/
Widgets http://docs.turbogears.org/1.0/Widgets

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

You might also like