SlideShare una empresa de Scribd logo
1 de 45
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

GWT y SmartGWT - Introducción
GWT y SmartGWT - IntroducciónGWT y SmartGWT - Introducción
GWT y SmartGWT - IntroducciónVLASLOV
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareJose Manuel Ortega Candel
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EEPaco Saucedo
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESJesus Caceres Tello
 

La actualidad más candente (11)

spring
springspring
spring
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
GWT y SmartGWT - Introducción
GWT y SmartGWT - IntroducciónGWT y SmartGWT - Introducción
GWT y SmartGWT - Introducción
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
IDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizadosIDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizados
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Transforma tu Monolito con HMVC
Transforma tu Monolito con HMVCTransforma tu Monolito con HMVC
Transforma tu Monolito con HMVC
 
JAVA3.0
JAVA3.0JAVA3.0
JAVA3.0
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos software
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EE
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 

Destacado

FRAMEWORD Yii
FRAMEWORD YiiFRAMEWORD Yii
FRAMEWORD Yiicritinasb
 
Yii inicios
Yii iniciosYii inicios
Yii iniciosfede003
 
Pfsense: securizando tu infraestructura
Pfsense: securizando tu infraestructuraPfsense: securizando tu infraestructura
Pfsense: securizando tu infraestructuraAlex Casanova
 
53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewall53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewallSebastian Berrios Vasquez
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phplgcj1989
 
Manual user diseño web con html y css
Manual user   diseño web con html y cssManual user   diseño web con html y css
Manual user diseño web con html y cssJose Luis Fernandez
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPJesus Castagnetto
 
Agentes Economicos B
Agentes Economicos BAgentes Economicos B
Agentes Economicos Brxavier
 
SAMSUNG YP-P2
SAMSUNG YP-P2SAMSUNG YP-P2
SAMSUNG YP-P2marco678
 
Erin & Brandon
Erin & BrandonErin & Brandon
Erin & Brandonfocustree
 
Teil i
Teil iTeil i
Teil iHeFre
 
2014 a critica y propuesta_jmmh
2014 a critica y propuesta_jmmh2014 a critica y propuesta_jmmh
2014 a critica y propuesta_jmmhPrepa Cihuatlan
 
WKE2014: The Beauty & The Beast
WKE2014: The Beauty & The BeastWKE2014: The Beauty & The Beast
WKE2014: The Beauty & The BeastWolfgang Wiese
 

Destacado (20)

Yii framework
Yii frameworkYii framework
Yii framework
 
FRAMEWORD Yii
FRAMEWORD YiiFRAMEWORD Yii
FRAMEWORD Yii
 
Yii inicios
Yii iniciosYii inicios
Yii inicios
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Pfsense: securizando tu infraestructura
Pfsense: securizando tu infraestructuraPfsense: securizando tu infraestructura
Pfsense: securizando tu infraestructura
 
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
 
53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewall53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewall
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
 
Manual user diseño web con html y css
Manual user   diseño web con html y cssManual user   diseño web con html y css
Manual user diseño web con html y css
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Institutstag 2012
Institutstag 2012Institutstag 2012
Institutstag 2012
 
Agentes Economicos B
Agentes Economicos BAgentes Economicos B
Agentes Economicos B
 
Mood Present
Mood PresentMood Present
Mood Present
 
Brescia2
Brescia2Brescia2
Brescia2
 
Curso de Introducción a la Mejora de Procesos de Software
Curso de Introducción a la Mejora de Procesos de SoftwareCurso de Introducción a la Mejora de Procesos de Software
Curso de Introducción a la Mejora de Procesos de Software
 
SAMSUNG YP-P2
SAMSUNG YP-P2SAMSUNG YP-P2
SAMSUNG YP-P2
 
Erin & Brandon
Erin & BrandonErin & Brandon
Erin & Brandon
 
Teil i
Teil iTeil i
Teil i
 
2014 a critica y propuesta_jmmh
2014 a critica y propuesta_jmmh2014 a critica y propuesta_jmmh
2014 a critica y propuesta_jmmh
 
WKE2014: The Beauty & The Beast
WKE2014: The Beauty & The BeastWKE2014: The Beauty & The Beast
WKE2014: The Beauty & The Beast
 

Similar a Turbogears

Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Alex Espinoza
 
Web matrix session1
Web matrix session1Web matrix session1
Web matrix session1Gonzalo C.
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver FulgueraJavier Oliver Fulguera
 
Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Gonzalo C.
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptxjohann
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Robert Rayco Quiroz
 
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_unoWeb matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_unoGonzalo C.
 
Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1Esteban Saavedra
 

Similar a Turbogears (20)

Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.
 
Web matrix session1
Web matrix session1Web matrix session1
Web matrix session1
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010
 
LARAVEL-01-INTRODUCCION.pptx
LARAVEL-01-INTRODUCCION.pptxLARAVEL-01-INTRODUCCION.pptx
LARAVEL-01-INTRODUCCION.pptx
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
S1-DS2.pptx
S1-DS2.pptxS1-DS2.pptx
S1-DS2.pptx
 
CakePHP
CakePHPCakePHP
CakePHP
 
Laravel
LaravelLaravel
Laravel
 
Laravel vc
Laravel vcLaravel vc
Laravel vc
 
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_unoWeb matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
Web matrix 2_desarrollo_web_gratis_simple_abierto_todo_en_uno
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Manualcake
ManualcakeManualcake
Manualcake
 

Más de Esteban Saavedra (20)

Atix30
Atix30Atix30
Atix30
 
Atix29
Atix29Atix29
Atix29
 
Atix28
Atix28Atix28
Atix28
 
Atix27
Atix27Atix27
Atix27
 
Atix26
Atix26Atix26
Atix26
 
Atix25
Atix25Atix25
Atix25
 
Rabbitmq
RabbitmqRabbitmq
Rabbitmq
 
Ansible
AnsibleAnsible
Ansible
 
Perl
PerlPerl
Perl
 
Atix24
Atix24Atix24
Atix24
 
Atix23
Atix23Atix23
Atix23
 
Lineas Base Migracion a Software Libre
Lineas Base Migracion a Software LibreLineas Base Migracion a Software Libre
Lineas Base Migracion a Software Libre
 
Seguridad Sistemas de Gobierno
Seguridad Sistemas de GobiernoSeguridad Sistemas de Gobierno
Seguridad Sistemas de Gobierno
 
Tunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y FirewallsTunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y Firewalls
 
Bi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar EmpresasBi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar Empresas
 
Clouds privadas
Clouds privadasClouds privadas
Clouds privadas
 
Introduccion Computacion Ubicua
Introduccion Computacion UbicuaIntroduccion Computacion Ubicua
Introduccion Computacion Ubicua
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Avances Tecnologicos
Avances TecnologicosAvances Tecnologicos
Avances Tecnologicos
 
Dni Electronico Bolivia
Dni Electronico BoliviaDni Electronico Bolivia
Dni Electronico Bolivia
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (16)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Turbogears

  • 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