SQLAlchemy とデータベースを使用する Flask プロジェクトがあります。テストのために、データベースを SQLite データベースに置き換えます。
次に、いくつかのビューを実行し、実行されたクエリの数をテストしたいと思います。基本的に、誤って (n+1) 選択問題に遭遇することは避けたいと考えています。 SQLite または Pytest / Flask プラグインから実行された SQL クエリの数を取得することはできますか?
同様のスタックオーバーフロー.com/questions/19073099/…
– スネークチャームブ
2020 年 9 月 3 日 15:16
------------------------
これは、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)```