Peewee – 更新现有记录
现有的数据可以通过调用模型实例的 save() 方法以及 update() 类方法进行修改。
下面的例子通过 get() 方法从用户表中获取一条记录,并通过改变年龄字段的值来更新它。
row=User.get(User.name=="Amar")
print ("name: {} age: {}".format(row.name, row.age))
row.age=25
row.save()
方法类的 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])