Outils pour utilisateurs

Outils du site


dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes [2025/08/28 18:35] – supprimée - modification externe (Date inconnue) 127.0.0.1dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes [2025/08/28 18:35] (Version actuelle) – ↷ Page déplacée de dev:python:flask:flask_sqlalchemy:afficher-les-requetes à dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes yoann
Ligne 1: Ligne 1:
 +{{tag>dev python sql sqlalchemy}}
 +
 +
 +====== Afficher les requêtes produites par l'ORM SQLAlchemy ======
 +
 +===== La variable de configuration SQLALCHEMY_ECHO =====
 +
 +Lorsqu'on utilise l'extension Flask-SQLAlchemy, on peut afficher un retour des requêtes produites par l'ORM sur la console en utilisant la variable de configuration **SQLALCHEMY_ECHO**
 +
 +<code python>
 +app.config["SQLALCHEMY_ECHO"] = True
 +</code>
 +
 +
 +===== Conversion d'un objet Query =====
 +
 +La conversion d'un objet de type Query en chaîne de caractère permet d'afficher la requête SQL.
 +
 +Dans l'exemple ci-dessous, la classe Shop est sérialisable vers le SGBDR (hérite de Model)
 +<code python>
 +>>> q = Shop.query.filter(Shop.name.like('%lou%') )
 +
 +>>> q
 +<flask_sqlalchemy.query.Query object at 0x7235321675f0>
 +
 +>>> print( str(q) )
 +SELECT shops.id AS shops_id, shops.name AS shops_name 
 +FROM shops 
 +WHERE shops.name LIKE ?
 +</code>
 +
 +
 +===== Références =====
 +
 +  * https://docs.sqlalchemy.org/en/20/faq/sqlexpressions.html
 +  * https://stackoverflow.com/questions/5631078/sqlalchemy-print-the-actual-query
 +  * https://stackoverflow.com/questions/12369295/flask-sqlalchemy-display-queries-for-debug