天天看點

SQLAlchemy 列印執行的SQL語句

分享知識  傳遞快樂

方式一:

SQLAlchemy支援在建立資料庫引擎時,通過echo=true,将連接配接這個資料庫引擎的所有執行語句列印出來:

engine = create_engine("<db_rul>", echo=True)      

方式二:

可以直接通過下邊的方式,列印SQL語句,但不包含參數的SQL語句

query = session.query(Model).filter(*filter)
print(str(query))      

這種方式得到的SQL也不可直接執行,因為對應的參數變量沒有被替換

方式三:

from sqlalchemy.dialects import mysql

obj = query.statement.compile(dialect=mysql.dialect(), compile_kwargs={"literal_binds": True})
print(str(obj ))      

這種方式可以列印包含參數的執行語句,但是參數隻包括數字和字元串等基本類型,其中dialects表示需要的資料庫方言。