演说者orm,如何查看(或记录)执行的查询?

时间:2018-03-21 11:30:07

标签: python skygear

有没有办法可以打印为演说家orm生成的查询。当我打印它时,我将其作为<orator.orm.builder.Builder object at 0x7f3ee22738d0>

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

我尝试迭代对象并查找将返回查询的任何键,但没有找到类似的东西。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

仅在查询中使用.to_sql()。

示例:

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

结果:

SELECT `company_name` FROM `accounts`