Flask / SQLAlchemy / Pytest / SQLite로 SQL 쿼리 수를 계산할 수 있습니까?
Sep 03 2020
SQLAlchemy와 데이터베이스를 사용하는 Flask 프로젝트가 있습니다. 테스트를 위해 데이터베이스를 SQLite 데이터베이스로 바꿉니다.
이제 일부 뷰를 실행하고 실행 된 쿼리 수를 테스트하고 싶습니다. 기본적으로 실수로 (n + 1) 선택 문제에 부딪히는 것을 피하고 싶습니다. SQLite 또는 Pytest / Flask 플러그인에서 실행 된 SQL 쿼리 수를 가져올 수 있습니까?
답변
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)```