有没有办法可以打印为演说家orm生成的查询。当我打印它时,我将其作为<orator.orm.builder.Builder object at 0x7f3ee22738d0>
我想打印将应用于数据库的查询,例如“SELECT * from students”
我尝试迭代对象并查找将返回查询的任何键,但没有找到类似的东西。
答案 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`