SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
PYCAMP.ORM
HACIENDO *FACIL* USAR SQLALCHEMY



              ... y ...
         de que se trata ?

                         /* momento de suspenso */
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



NUESTRO PROPOSITO


                              INTERACTUAMOS CON LA BASE DE DATOS




   BASE DE DATOS RELACIONAL
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



INTERACTUAR CON LA DB
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



BASES DE DATOS Y SUS DIALECTOS
            言語                   язык          ‫زﺑﺎن‬




        MISMAS QUERYS, DIFERENTES MOTORES / BASES DE DATOS
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



ORM / OBJECT RELATION MAPPER

言語




язык                     SQLALCHEMY
                        THE PYTHON SQL
                            TOOLKIT

‫زﺑﺎن‬
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



EJEMPLOS / FREDDY VS JASON
                                 言語
       言語
                                  SQLALCHEMY
                                     ORM
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



ENTONCES ? ...                        /* BASTA DE DIBUJITOS */

   BASE DE DATOS
    RELACIONAL




       TABLAS                      OBJETOS PYTHON
                      SQLALCHEMY       YES!!! ^^


     COLUMNAS



         FILAS
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



HACIENDO ALQUIMIA, INGREDENTES:
from   sqlalchemy.orm import sessionmaker
from   sqlalchemy.orm import mapper
from   sqlalchemy import MetaData
from   sqlalchemy import create_engine




           ENGINE                  + METADATA
                MAPPER
                            SESIONES
                                        == PODEROSA ALQUIMIA
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



ORDEN DE LOS INGREDIENTES
                                 /* LA CHARLA NO ERA DE PYCAMP.ORM ?! o.O' */


 1- CREAR ENGINE
 2- BINDEAR CONTRA NUESTRO ENGINE
 ...
 LISTO =)
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



PREPARANDO EL ENGINE Y BINDEANDO
                                      /* LA CHARLA NO ERA DE PYCAMP.ORM ?! o.O' */



    from sqlalchemy import create_engine
    url = 'mysql://user:passwd@host/dbname'
    engine = create_engine(url)
                                              /* mission 1 complete! */


    from sqlalchemy.orm import sessionmaker
    sesion = sessionmaker(bind=engine)

    from sqlalchemy import MetaData
    meta = MetaData(bind=engine)
                                              /* Very nice ! ^^ */
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



*COPADO*!!! ... PERO ... Y PYCAMP.ORM ?
                                                                                  /* ME ABURRO ... - . - ... */




Fotos sacadas del flickr de Horacio Duran (perrito666)
http://www.flickr.com/photos/perrito667/sets/72157626271479985/with/5575872718/
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



ONE RING TWO OBJECTS TO RULE THEM ALL!!!
from pycamp.orm.mapper import Database

mydb = Database('pycamp', user='pycamp', passwd='pycamp', engine='mysql')
otherdb = Database('pyday', user='pyday', passwd='pyday', engine='posgresql')

from pycamp.orm.mapper import DatabaseManager

manager = DatabaseManager()
manager.add(mydb, otherdb)

import datetime                                                                   engine
                                                              manager.mysql.pycamp.
newreg = manager.mysql.pycamp.test1()                         manager.mysql.pycamp.host
newreg.name = 'foo bar'                                                           meta
                                                              manager.mysql.pycamp.
newreg.birthdate = datetime.date.today()                      manager.mysql.pycamp.name
newreg.contact_id = '31337'                                   manager.mysql.pycamp.passwd
                                                                                  session
                                                              manager.mysql.pycamp.
sesion = manager.mysql.pycamp.session()                                           test1
                                                              manager.mysql.pycamp.
sesion.add(newreg)                                            manager.mysql.pycamp.user
try:
    sesion.commit()
except Exception,ex:
     os.system('halt')
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



CASTING THE SPELLS

MAPPER(CLASS, TABLE)
for kw in db. meta.tables.keys():
    obj = type(str(kw), (object,), {})


                                   +
    setattr(db, kw, obj)
    mapper(obj, db.meta.tables[kw])


                           AUTOREFLECT
                           db.meta.reflect(bind=db.engine)



                                         == +1 HP
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



MEZCLANDO TODO ...


 HORA DE IR AL SHELL ...

            AHORA GENERALMENTE SE ROMPE TODO
            Y/O/U NO ANDA NADA COMO UNO LO ESPERA
pycamp.orm
HACIENDO FACIL USAR SQLALCHEMY



MUCHAS GRACIAS!!!                     /* DONACIONES DE CERVEZAS SERAN BIEN RECIBIDAS ^^ */ */


PYCAMP.ORM
https://bitbucket.org/edvm/pycamp.orm/overview
SQLALCHEMY
http://www.sqlalchemy.org/docs/

Que tengan un buen dia y recuerden ... traten
de usar una base de datos orientada a
Objetos u/o/y NoSQL ^^ /* cheatsheet
                                   - Zope
                                   - MongoDB
                                 */
                                                              Emiliano Dalla Verde Marcozzi
                                                                     edvm@airtrack.com.ar
                                                                              twitter: @edvm
                                                                            irc freenode: x-ip

Contenu connexe

Similaire à SQLAlchemy and pycamp.orm

Por qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoPor qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoCarlos Granados
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básicocamposer
 
Symfony parte 15 Consultas y Migración
Symfony parte 15 Consultas y MigraciónSymfony parte 15 Consultas y Migración
Symfony parte 15 Consultas y MigraciónRodrigo Miranda
 
Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01MaraMagdalenaBlancoR
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytestHector Canto
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Ricard Luquero
 
Node js Alt.net Hispano
Node js Alt.net HispanoNode js Alt.net Hispano
Node js Alt.net Hispanohdgarcia
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Automatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datosAutomatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datosManuel Martín
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...betabeers
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apisCloudAppi
 

Similaire à SQLAlchemy and pycamp.orm (20)

Por qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoPor qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápido
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
9.laravel
9.laravel9.laravel
9.laravel
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 
Symfony parte 15 Consultas y Migración
Symfony parte 15 Consultas y MigraciónSymfony parte 15 Consultas y Migración
Symfony parte 15 Consultas y Migración
 
Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01Programacin mysqlejercicios439-131027071437-phpapp01
Programacin mysqlejercicios439-131027071437-phpapp01
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHP
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Segunda sesion
Segunda sesionSegunda sesion
Segunda sesion
 
Node js Alt.net Hispano
Node js Alt.net HispanoNode js Alt.net Hispano
Node js Alt.net Hispano
 
Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Automatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datosAutomatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datos
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 

Dernier

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
 
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
 
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
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
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
 
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
 

Dernier (13)

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
 
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
 
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
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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...
 
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)
 
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
 

SQLAlchemy and pycamp.orm

  • 1. PYCAMP.ORM HACIENDO *FACIL* USAR SQLALCHEMY ... y ... de que se trata ? /* momento de suspenso */
  • 2. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY NUESTRO PROPOSITO INTERACTUAMOS CON LA BASE DE DATOS BASE DE DATOS RELACIONAL
  • 3. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY INTERACTUAR CON LA DB
  • 4. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY BASES DE DATOS Y SUS DIALECTOS 言語 язык ‫زﺑﺎن‬ MISMAS QUERYS, DIFERENTES MOTORES / BASES DE DATOS
  • 5. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY ORM / OBJECT RELATION MAPPER 言語 язык SQLALCHEMY THE PYTHON SQL TOOLKIT ‫زﺑﺎن‬
  • 6. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY EJEMPLOS / FREDDY VS JASON 言語 言語 SQLALCHEMY ORM
  • 7. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY ENTONCES ? ... /* BASTA DE DIBUJITOS */ BASE DE DATOS RELACIONAL TABLAS OBJETOS PYTHON SQLALCHEMY YES!!! ^^ COLUMNAS FILAS
  • 8. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY HACIENDO ALQUIMIA, INGREDENTES: from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import mapper from sqlalchemy import MetaData from sqlalchemy import create_engine ENGINE + METADATA MAPPER SESIONES == PODEROSA ALQUIMIA
  • 9. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY ORDEN DE LOS INGREDIENTES /* LA CHARLA NO ERA DE PYCAMP.ORM ?! o.O' */ 1- CREAR ENGINE 2- BINDEAR CONTRA NUESTRO ENGINE ... LISTO =)
  • 10. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY PREPARANDO EL ENGINE Y BINDEANDO /* LA CHARLA NO ERA DE PYCAMP.ORM ?! o.O' */ from sqlalchemy import create_engine url = 'mysql://user:passwd@host/dbname' engine = create_engine(url) /* mission 1 complete! */ from sqlalchemy.orm import sessionmaker sesion = sessionmaker(bind=engine) from sqlalchemy import MetaData meta = MetaData(bind=engine) /* Very nice ! ^^ */
  • 11. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY *COPADO*!!! ... PERO ... Y PYCAMP.ORM ? /* ME ABURRO ... - . - ... */ Fotos sacadas del flickr de Horacio Duran (perrito666) http://www.flickr.com/photos/perrito667/sets/72157626271479985/with/5575872718/
  • 12. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY ONE RING TWO OBJECTS TO RULE THEM ALL!!! from pycamp.orm.mapper import Database mydb = Database('pycamp', user='pycamp', passwd='pycamp', engine='mysql') otherdb = Database('pyday', user='pyday', passwd='pyday', engine='posgresql') from pycamp.orm.mapper import DatabaseManager manager = DatabaseManager() manager.add(mydb, otherdb) import datetime engine manager.mysql.pycamp. newreg = manager.mysql.pycamp.test1() manager.mysql.pycamp.host newreg.name = 'foo bar' meta manager.mysql.pycamp. newreg.birthdate = datetime.date.today() manager.mysql.pycamp.name newreg.contact_id = '31337' manager.mysql.pycamp.passwd session manager.mysql.pycamp. sesion = manager.mysql.pycamp.session() test1 manager.mysql.pycamp. sesion.add(newreg) manager.mysql.pycamp.user try: sesion.commit() except Exception,ex: os.system('halt')
  • 13. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY CASTING THE SPELLS MAPPER(CLASS, TABLE) for kw in db. meta.tables.keys(): obj = type(str(kw), (object,), {}) + setattr(db, kw, obj) mapper(obj, db.meta.tables[kw]) AUTOREFLECT db.meta.reflect(bind=db.engine) == +1 HP
  • 14. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY MEZCLANDO TODO ... HORA DE IR AL SHELL ... AHORA GENERALMENTE SE ROMPE TODO Y/O/U NO ANDA NADA COMO UNO LO ESPERA
  • 15. pycamp.orm HACIENDO FACIL USAR SQLALCHEMY MUCHAS GRACIAS!!! /* DONACIONES DE CERVEZAS SERAN BIEN RECIBIDAS ^^ */ */ PYCAMP.ORM https://bitbucket.org/edvm/pycamp.orm/overview SQLALCHEMY http://www.sqlalchemy.org/docs/ Que tengan un buen dia y recuerden ... traten de usar una base de datos orientada a Objetos u/o/y NoSQL ^^ /* cheatsheet - Zope - MongoDB */ Emiliano Dalla Verde Marcozzi edvm@airtrack.com.ar twitter: @edvm irc freenode: x-ip