Est-il possible de compter le nombre de requêtes SQL avec Flask / SQLAlchemy / Pytest / SQLite?
Sep 03 2020
J'ai un projet Flask qui utilise SQLAlchemy et une base de données. Pour les tests, je remplace la base de données par une base de données SQLite.
Je voudrais maintenant exécuter certaines des vues et tester le nombre de requêtes exécutées. Essentiellement, je veux éviter de tomber accidentellement dans le problème de sélection (n + 1). Est-il possible d'obtenir le nombre de requêtes SQL exécutées à partir de SQLite ou d'un plugin Pytest / Flask?
Réponses
AshishBhatt Sep 03 2020 at 19:50
Vous pouvez le faire en https://docs.sqlalchemy.org/en/13/core/events.html (journalisation des événements)
event.listen(engine, "before_cursor_execute")
Vous pouvez maintenant utiliser la fonction comme mentionné dans la documentation:
@event.listens_for(conn, 'before_cursor_execute')
def before_cursor_execute(conn, cursor, statement, parameters,
context, executemany):
log.info("Received statement: %s", statement)```