SlideShare a Scribd company logo
1 of 15
Download to read offline
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

More Related Content

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

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

Recently uploaded

dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
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
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Recently uploaded (20)

dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
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
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

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