¿Es posible contar el número de consultas SQL con Flask / SQLAlchemy / Pytest / SQLite?
Sep 03 2020
Tengo un proyecto Flask que usa SQLAlchemy y una base de datos. Para las pruebas, reemplazo la base de datos por una base de datos SQLite.
Ahora me gustaría ejecutar algunas de las vistas y probar la cantidad de consultas ejecutadas. Esencialmente, quiero evitar encontrarme accidentalmente con el problema de selección (n + 1). ¿Es posible obtener la cantidad de consultas SQL ejecutadas desde SQLite o un complemento Pytest / Flask?
Respuestas
AshishBhatt Sep 03 2020 at 19:50
Puedes hacer esto por https://docs.sqlalchemy.org/en/13/core/events.html (registro de eventos)
event.listen(engine, "before_cursor_execute")
Ahora puede usar la función como se menciona en la documentación:
@event.listens_for(conn, 'before_cursor_execute')
def before_cursor_execute(conn, cursor, statement, parameters,
context, executemany):
log.info("Received statement: %s", statement)```