简单的 peewee 示例: 具有自动增量“id”和字符字段“name”的 MySQL DB“Pet”。
做
my_pet = Pet.select().where(name == 'Garfield')
使用 .sql() 我们得到 sql 解释。
如何从以下位置获取原始 sql 查询:
my_pet = Pet.get(name='Garfield')
?
最佳答案
当你写的时候:
my_pet = Pet(name='Garfield')
数据库中什么也没有发生。
您只是创建了一个对象。没有魔法,因为 peewee 是一个 ActiveRecord ORM,只有在您调用 Model.save()
或 Model.create()
等方法时才会保存。
如果您希望 SQL 用于类似 Model.create()
的查询,那么您应该考虑使用 Model.insert()
:
insert_stmt = Pet.insert(name='Garfield')
sql = insert_stmt.sql()
new_obj_id = insert_stmt.execute()
缺点是您不会返回模型实例,只会返回主键。
关于python - 如何从peewee获取sql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32691602/