4

我有一个使用 SQLAlchemy 和数据库的 Flask 项目。为了测试,我将数据库替换为 SQLite 数据库。

现在我想运行一些视图并测试执行的查询数量。本质上,我想避免意外遇到 (n+1) 选择问题。是否可以从 SQLite 或 Pytest / Flask 插件获取执行的 SQL 查询的数量?

4

1 回答 1

0

您可以通过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)```
于 2020-09-03T12:50:29.493 回答