微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从SQLAlchemy检索执行的SQL代码

如何解决如何从SQLAlchemy检索执行的SQL代码

| 我正在使用sqlAlchemy,并想记录执行的sql代码(即已引用和替换了所有绑定参数的代码)。对于psycopg2,可以使用
Cursor
对象的
query
属性(请参见psycopg文档)。对于MysqLdb,可以使用
Cursor
对象的
_last_executed
属性。 我的问题是:如何使用sqlAlchemy接口检索刚刚执行的查询字符串?它提供了这样的功能还是我应该编写自己的帮助器功能? 在此先感谢您的帮助。     

解决方法

        SQLAlchemy使用标准的Python日志记录库。要将查询记录到名为“ 4”的文件中:
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
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。