python - Flask / SQLAlchemy / Pytest / SQLite で SQL クエリの数をカウントすることは可能ですか?

okwaves2024-01-25  190

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)```

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。