数据库的本质还是关系,表就对应着一个类或者模型,而列对应着一个属性,行对应着一个实例。
两张表之间的关系映射就靠外键,或者靠反向引用,这是普通表关系的对应。
每张表有个自增的主键,这是不能重复的,用以区别其中的行或者实例。
数据库的使用除了SQL语句外,还可以使用简化的ORM语言,例如SQLAlchemy就可以支持多种数据库,并且使用简单的python语句就可以执行数据库的增删查改。
对于数据库,使用可能比较多的地方是有序无冲突的存储数据。当然数据处理时可能发生进行到一半中断的情况,所以数据库有一个session会话,只有在最后所有修改完成后,再调用session.commit()才会成功保存所有修改。这跟数据库中的游标差不多,只有进行完所有数据修改后,才会保存。修改都使用session.add字段的方式。
数据库的create_all和drop_all,是创建和删除表的操作。而在shell中的修改能更及时地看到结果。在app中可以配置好预加载的模块和类,在shell启动时自动读入。
查询使用all或者first关键字。也可以使用类似order_by或者filter_by的过滤器。