数据修改

仅能完成数据查询是不够的,数据库连接会话提供了一系列的功能来完成数据修改功能。对于数据的修改,基本上都是针对保存有数据的映射类的实例来操作的。

Session类使用add()来添加一个映射类实例,使用add_all()来添加一个映射类实例列表以完成批量添加功能。

当查询到一个结果后,可以对这个结果进行修改,来完成数据更新的功能。

对一条记录的删除,则是使用.delete()方法提供的。此外还可以使用Query对象的.delete()方法来删除数据。例如:

session.query(User).filter(User.pending_delete == 1).delete()

对Session类实例监管下的映射类实例的任何添加和修改操作,都会使Session类实例进入dirty状态,这意味着Session缓存了全部的修改内容,需要进一步操作来将其同步到数据库。

调用Session类的.commit()方法可以将全部修改内容提交到数据库,而使用.rollback()方法可以撤销全部修改。这与事务操作基本一致。