要获取 Alchemy QueryBuilder 的原始 SQL 字符串,可以使用 str() 函数或者 compile() 方法。下面是两种方法的代码示例:
方法一:使用 str() 函数
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# 创建数据库连接
engine = create_engine('mysql://username:password@localhost/mydatabase')
Session = sessionmaker(bind=engine)
session = Session()
# 获取 QueryBuilder 的原始 SQL 字符串
query = session.query(User).filter(User.id == 1)
sql = str(query)
print(sql)
方法二:使用 compile() 方法
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# 创建数据库连接
engine = create_engine('mysql://username:password@localhost/mydatabase')
Session = sessionmaker(bind=engine)
session = Session()
# 获取 QueryBuilder 的原始 SQL 字符串
query = session.query(User).filter(User.id == 1)
compiled_query = query.compile(compile_kwargs={"literal_binds": True})
sql = str(compiled_query)
print(sql)
这两种方法都可以将 QueryBuilder 转换成原始的 SQL 字符串。