Flas-SQLAlchemy的增删查改基本操作

本篇主要讲数据库的基本操作--新建,更新,删除,查找

Flas-SQLAlchemy的增删查改基本操作

在Flas-SQLAlchemy中,创建数据库的方法是db.create_all(),在狗书例子中,我们看到连接sqlite后会有一个data.sqlite的文件,如果该数据库表已经存在,那么该方法不会重新创建或者更新这个表的。若果修改模型后,要更新数据库表,粗暴的方法是先删除旧表再重新创建,删除的方法是db.drop_all(),提醒,这种粗暴更新法是会销毁数据的。

Flas-SQLAlchemy的增删查改基本操作

这里通过数据库会话管理对数据库所做的改动,会话由db.session表示。在准备把对象写入数据库之前,要先将其添加到会话中,然后使用commit提交。这里的会话session与前面的flaks session对象是没有关系的,数据库的话会也称为事务,这事务能保证数据库的一致性,提交操作使用原子方式把会话中的对象全部写入数据库。如果写入会话时发生错误,那么整个会话会失效,这样能避免部分更新导致数据库不一致性。而且,数据库会话可以进行回滚操作,即把对象还原到之前在数据库时的状态,回滚方法时rollback

Flas-SQLAlchemy的增删查改基本操作

修改行,可以使用会话的add方法db.session.add();删除行,可以使用会话的db.session.delete();说明,修改与删除都是要提交才会生效的。对于数据库操作,查找是最最常用的,Flask-SQLAlchemy为每个模型类都提供了query查询对象,可以取回对应表中的记录,其中all()是以列表的形式返回所有结果。要想经确查找,可以使用过滤器filter,过滤器是可以多个一起用的。对于关联查询,用起面提到的db.relationship。


分享到:


相關文章: