Ste*_*iss 5 python python-3.x peewee
简单的 peewee 示例:带有自动增量“id”和字符字段“name”的 MySQL 数据库“Pet”。
正在做
my_pet = Pet.select().where(name == 'Garfield')
Run Code Online (Sandbox Code Playgroud)
使用 .sql() 我们得到 sql 解释。
如何从以下位置获取原始 sql 查询:
my_pet = Pet.get(name='Garfield')
Run Code Online (Sandbox Code Playgroud)
?
当你写:
my_pet = Pet(name='Garfield')
Run Code Online (Sandbox Code Playgroud)
数据库中什么也没有发生。
您只是创建了一个对象。没有什么神奇之处,因为 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()
Run Code Online (Sandbox Code Playgroud)
缺点是您没有返回模型实例,只是主键。