flask项目中如何打印查看sql语句

1.启用 SQLAlchemy 调试模式
import logging
logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)

2.from sqlalchemy.dialects import mysql
compiled_query = query.statement.compile(dialect=mysql.dialect(), compile_kwargs={"literal_binds": True})
由于我的mysql, 使用的是pymysql  ,所以我的dialect就是mysql.dialect(),大家需要根据自己的数据库匹配的方言。SQLAlchemy 支持多种数据库方言,如 MySQL、SQLite、Oracle 等。以下是一些常见数据库的方言名称:

  • PostgreSQL: postgresql
  • MySQL: mysql
  • SQLite: sqlite
  • Oracle: oracle
  • Microsoft SQL Server: mssql

 3.这是我使用的案例

    query = StockOrder.query.all()
    query = query.order_by(desc(StockOrder.order_time))
    from sqlalchemy.dialects import mysql
    compiled_query = query.statement.compile(dialect=mysql.dialect(), compile_kwargs={"literal_binds": True})
    print(compiled_query)

可以看到打印部分,这里部分省略

SELECT *
FROM stock_orders
WHERE stock_orders.order_type = '卖出' AND stock_orders.order_time >= '2024-06-21 18:00:32.852875' ORDER BY stock_orders.order_time DESC  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值