Я маю об’єкт запиту SQLAlchemy і хочу отримати текст скомпільованого оператора SQL з усіма його параметрами (наприклад, жодних %s
або інших змінних, які чекають на зв’язування компілятора операторів або діалектного механізму MySQLdb тощо).
Виклик str()
запиту виявляє приблизно таке:
SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC
Я намагався шукати в query._params, але це порожній dict. Я написав власний компілятор, використовуючи цей приклад sqlalchemy.ext.compiler.compiles
декоратора, але навіть у заяві все ще є місця, %s
де я хочу отримати дані.
Я не можу зрозуміти, коли мої параметри змішуються для створення запиту; при дослідженні об'єкта запиту вони завжди є порожнім словником (хоча запит виконується нормально, і механізм друкує його, коли ви вмикаєте реєстрацію ехо-сигналів).
Я починаю отримувати повідомлення про те, що SQLAlchemy не хоче, щоб я знав базовий запит, оскільки це порушує загальний характер інтерфейсу API виразу всіх різних DB-API. Я не проти, якщо запит виконується до того, як я дізнався, що це було; Я лише хочу знати!