Curso Python DGA 2011/acceso a datos/contenidos/sqlalchemy

De WikiEducator
Saltar a: navegación, buscar
Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg


SQLAlchemy

Elementos clave

Sesiones
Gestionan las conexiones contra la DB. Para optimizar el sistema SQLAlchemy mantiene un pool de conexiones persistentes contra la DB. Cuando se crea una sesión, se toma una del pool de conexiones. Cuando se cierra, se devuelve al pool.
Mapper
'mapea' las estructuras y propiedades de la DB a objetos Python y viceversa.
MetaData
Engine
Configura la conexión con la base de datos (usuario, password, nombre de la bbdd, motor, conexiones del pool, ...)

Proceso

  1. Crear engine
  2. Enlazar con el engine
  3. Usar el orm

Ejemplo de sesión:

# -*- coding: utf-8 -*-
 
import os
from sqlalchemy import create_engine, Metadata
from sqlalchemy.orm import mapper, sessionmaker
 
db = os.path.join(os.path.abspath(os.path.curdir), 'db.sql')
engine = create_engine('sqlite:///%s' % db)
 
meta = MetaData(bind=engine)
Session = sessionmaker(bind=engine)
 
session = Session()
session.query(''' ... ''').all()
session.close()