学习是用模型的最好方法是在python shell中实际操作。shell使用flask shell启动,在这之前请先设定FLASK_APP环境变量。(提示:请按“Flask中操作数据库(一)”中的示例定义User和Role模型)
一. 数据库操作
1.1 创建表
db.create_all()函数将寻找所有db.Model的子类,然后在数据库中创建对应的表:
查看应用目录,将发现有个名为data.sqlite文件:
可以通过db.drop_all()删除所有表,修改模型后使用db.create_all()再重新创建。但这样会造成数据被销毁,后续将介绍一种更好的数据库更新方式。
1.2 插入行
下面的代码创建一些角色和用户:
role属性也可以使用,虽然它不是真正的数据库列,但确是一对多关系的高级表示。现在对象只存在于Python中,尚未写入数据库。对数据库的改动需要通过数据库会话(db.session)管理,准备将对象写入数据库之前需添加到session中:
为了把对象写入数据库,需要使用commit()方法提交会话。db.session提供了增、删、改的相关方法,以及数据库提交commit()和回滚db.session.rollback()。 查看提交后的数据库表: