有没有一种方法可以打印为 orator orm 生成的查询。当我打印它时,我得到它<orator.orm.builder.Builder object at 0x7f3ee22738d0>
我想打印将应用于数据库的查询,例如“SELECT * from students”
我尝试遍历对象并寻找任何可以返回查询的键,但没有找到类似的东西。
您需要在数据库配置文件 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)
只需在查询上使用 .to_sql() 即可。
例子:
query = db.table('accounts').select('company_name').to_sql()
print(query)
结果:
SELECT `company_name` FROM `accounts`