我有一个SQLAlchemy查询对象,希望获取已编译的SQL语句的文本,并绑定它的所有参数(例如,没有%s
或等待语句编译器或MySQLdb方言引擎绑定的其他变量等)。
对查询调用str()
会显示如下内容:
SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC
我试过在查询中查找参数。参数是空的。我用this example of the ^{%s
。
我不太清楚我的参数是什么时候混合在一起创建查询的;当检查查询对象时,它们总是一个空字典(尽管查询执行得很好,当您打开echo日志时,引擎会打印出来)。
我开始得到这样的消息:SQLAlchemy不想让我知道底层查询,因为它打破了expression API接口的一般性质所有不同的dbapi。我不介意查询在我发现它是什么之前被执行;我只是想知道!
这应该适用于Sqlalchemy>;=0.6
documentation使用
literal_binds
打印查询q
,包括参数:文档还发出以下警告:
This博客提供了更新的答案。
引用博客文章,这是我的建议和工作。
其中q定义为:
或者只是任何类型的session.query()。
感谢尼古拉斯·卡杜的回答!我希望它能帮助到这里来找东西的人。
相关问题 更多 >
编程相关推荐