Можно ли подсчитать количество SQL-запросов с помощью Flask / SQLAlchemy / Pytest / SQLite?
Sep 03 2020
У меня есть проект Flask, который использует SQLAlchemy и базу данных. Для тестирования заменяю базу данных на базу данных SQLite.
Теперь я хотел бы запустить некоторые из представлений и проверить количество выполненных запросов. По сути, я хочу избежать случайного столкновения с проблемой выбора (n + 1). Можно ли получить количество выполненных SQL-запросов из SQLite или плагина Pytest / Flask?
Ответы
AshishBhatt Sep 03 2020 at 19:50
Вы можете сделать это https://docs.sqlalchemy.org/en/13/core/events.html (регистрация событий)
event.listen(engine, "before_cursor_execute")
Теперь вы можете использовать функцию, как указано в документации:
@event.listens_for(conn, 'before_cursor_execute')
def before_cursor_execute(conn, cursor, statement, parameters,
context, executemany):
log.info("Received statement: %s", statement)```