![](/img/trans.png)
[英]how to know the type of sql query result before it is executed in sqlalchemy
[英]How to retrieve executed SQL code from SQLAlchemy
我正在使用 SQLAlchemy 并想记录执行的 SQL 代码(即所有绑定参数已被引用和替换的代码)。 在psycopg2的情况下,可以使用Cursor
object 的query
属性(参见psycopg 文档)。 在MySQLdb的情况下,可以使用Cursor
object 的_last_executed
属性。
我的问题是:如何使用 SQLAlchemy 接口检索刚刚执行的查询字符串? 它提供这样的功能还是我应该编写自己的助手 function?
提前感谢您的帮助。
SQLAlchemy 使用标准的 Python 日志库。 要将查询记录到名为db.log
的文件中:
import logging
logging.basicConfig(filename='db.log')
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
使用 Python 日志记录时,确保所有echo
显标志都设置为False
,以避免重复记录。 现在向数据库添加一些东西:
>>> Movie(title=u"Blade Runner", year=1982)
>>> session.commit()
这将记录如下内容:
INFO:sqlalchemy.engine.base.Engine:BEGIN (implicit)
INFO:sqlalchemy.engine.base.Engine:INSERT INTO models_movie (title, year, description) VALUES (%(title)s, %(year)s, %(description)s) RETURNING models_movie.id
INFO:sqlalchemy.engine.base.Engine:{'title': u'Blade Runner', 'description': None, 'year': 1982}
INFO:sqlalchemy.engine.base.Engine:COMMIT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.