เป็นไปได้ไหมที่จะนับจำนวนการสืบค้น 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)```