DataSet是一个“适合懒人”的数据库包,可以省去很多ORM框架和写SQL语句的麻烦,直接使用Pythonic的方式操作数据库。
导论
首先引入DataSet包:
数据库的连接遵循Python的DBurl规范:dialect://user:password@host/dbname。
从源码上来看,依然使用了sqlalchemy的create_engine方法,
连接数据库
指定数据库中的表时,可以使用类似于字典的语法,当表不存在时,会默认建表。
核心方法是create_table,当表不存在现有数据库时,会调用Table类,在数据库建表,Table类的核心是_sync_table和_sync_columns,根据传入的数据修改表结构和建表。
基本数据库操作
有了table类,就可以执行增删改查的操作了:
增删改
查询数据
all方法返回所有数据
并且将Select语句抽象为find方法:
最后也提供query方法直接使用SQL语句:
事务操作
对于数据库,免不了事务操作。DataSet使用上下文管理器,自动管理commit和关闭连接:
其等价于:
源码中则是实现了enter__和__exit方法。
元数据管理
除了对数据进行操作外,DataSet还支持对元数据进行管理,调用tables方法可以返回数据库里所有表的表名,table类的columns方法则可以查看所有列名。
领取专属 10元无门槛券
私享最新 技术干货