2012-09-16 14 views
10

Estoy usando frasco y una extensión sqlalchemy. También estoy usando la manera declarativa de escribir mis modelos como se describe en la documentación de la extensión.frasco de sqlalchemy después de insertar/actualizar/eliminar

Para uno de mis modelos, tengo un código que necesito ejecutar después de que se haya insertado, actualizado o eliminado una nueva fila. Me preguntaba cómo hacerlo? Lo ideal sería simplemente añadir funciones al modelo ..

Gracias

Respuesta

16

mirada a SQLAlchemy de Mapper Events. Puede vincular una función de devolución de llamada a los eventos after_insert, after_update y after_delete.

Ejemplo:

from sqlalchemy import event 

def after_insert_listener(mapper, connection, target): 
    # 'target' is the inserted object 
    print(target.id_user) 

event.listen(User, 'after_insert', after_insert_listener) 
Cuestiones relacionadas