![](/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.