簡體   English   中英

如何從 SQLAlchemy 中檢索執行的 SQL 代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM