Peewee - 更新现有记录


可以通过调用模型实例上的save()方法以及update()类方法来修改现有数据。

以下示例借助get()方法从 User 表中获取一行,并通过更改年龄字段的值来更新它。

row=User.get(User.name=="Amar")
print ("name: {} age: {}".format(row.name, row.age))
row.age=25
row.save()

Method 类的 update() 方法生成 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 还有一个bulk_update()方法来帮助在单个查询操作中更新多个模型实例。该方法需要更新模型对象和更新字段列表。

以下示例用新值更新指定行的年龄字段。

rows=User.select()
rows[0].age=25
rows[2].age=23
User.bulk_update([rows[0], rows[2]], fields=[User.age])