首頁 > 資料庫 > mysql教程 > 如何從 SQLAlchemy 表達式中檢索原始編譯的 SQL?

如何從 SQLAlchemy 表達式中檢索原始編譯的 SQL?

Susan Sarandon
發布: 2025-01-07 10:56:41
原創
289 人瀏覽過

How Can I Retrieve the Raw Compiled SQL from a SQLAlchemy Expression?

從SQLAlchemy 運算式擷取原始、編譯的SQL

在SQLAlchemy 中,從表達式物件取得原始、編譯的SQL 查詢可能是一個挑戰。雖然表達式 API 提供了方便的接口,但它使底層 SQL 隱藏在視圖之外。

努力尋找參數

您已檢查了查詢。 _params 字典,但發現儘管查詢執行成功,但它還是空的。這是因為 SQLAlchemy 有意將參數封裝在查詢物件中。透過這樣做,它確保了與各種 DB-API 的兼容性。

使用文字綁定

但是,SQLAlchemy 文件透過使用literal_binds 提供了一種解決方法:

print(q.statement.compile(compile_kwargs={"literal_binds": True}))
登入後複製

這種方法允許您列印包含參數的查詢語句。但它僅適用於基本類型(例如整數、字串),不支援沒有預先定義值的 bindparam()。

安全警告

文件強烈建議不要在不受信任的輸入中使用此技術。 SQLAlchemy 的型別強制轉換機制並非萬無一失,可能會導致安全漏洞。

結論

雖然預設不直接公開,但可以從 SQLAlchemy 檢索原始的編譯 SQL使用literal_binds關鍵字參數的表達式。然而,在處理不受信任的數據時務必小心謹慎。

以上是如何從 SQLAlchemy 表達式中檢索原始編譯的 SQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板