分享知识 传递快乐
方式一:
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表示需要的数据库方言。
—————————
如有不足请留言指正
相互学习,共同进步