3

有没有一种方法可以打印为 orator orm 生成的查询。当我打印它时,我得到它<orator.orm.builder.Builder object at 0x7f3ee22738d0>

我想打印将应用于数据库的查询,例如“SELECT * from students”

我尝试遍历对象并寻找任何可以返回查询的键,但没有找到类似的东西。

4

2 回答 2

4

您需要在数据库配置文件 db.py 中启用 queries_logs 参考: https ://orator-orm.com/docs/0.9/basic_usage.html#customizing-log-messages

config = {
'mysql': {
    'driver': 'mysql',
    'host': 'localhost',
    'database': 'database',
    'username': 'root',
    'password': '',
    'prefix': '',
    'log_queries': True
}

}

如果它不起作用,请尝试您可能需要添加这些的链接

import logging

logger = logging.getLogger('orator.connection.queries')
logger.setLevel(logging.DEBUG)

formatter = logging.Formatter(
    'It took %(elapsed_time)sms to execute the query %(query)s'
)

handler = logging.StreamHandler()
handler.setFormatter(formatter)

logger.addHandler(handler)
于 2018-05-18T11:53:30.107 回答
3

只需在查询上使用 .to_sql() 即可。

例子:

query = db.table('accounts').select('company_name').to_sql()
print(query)

结果:

SELECT `company_name` FROM `accounts`
于 2018-08-13T07:00:12.933 回答