Peewee 更新现有记录
现有数据可以通过调用修改 save() 模型实例上的方法以及 update() 类方法。
以下示例借助以下示例从 User 表中获取一行 get() 方法并通过更改年龄字段的值来更新它。
row=User.get(User.name=="Amar") print ("name: {} age: {}".format(row.name, row.age)) row.age=25 row.save()
The update() Method 类的方法生成 UPDATE 查询。然后调用查询对象的 execute() 方法。
下面的示例使用 update() 方法来更改其大于 20 的行的年龄列。
qry=User.update({User.age:25}).where(User.age>20) print (qry.sql()) qry.execute()
update() 方法渲染的 SQL 查询如下:
('UPDATE "User" SET "age" = ? WHERE ("User"."age" > ?)', [25, 20])
Peewee 还有一个 批量更新() 方法来帮助在单个查询操作中更新多个模型实例。该方法需要更新模型对象和更新字段列表。
以下示例通过新值更新指定行的年龄字段。
rows=User.select() rows[0].age=25 rows[2].age=23 User.bulk_update([rows[0], rows[2]], fields=[User.age])