学习
实践
活动
工具
TVP
写文章

Python的“懒人”包DataSet解析

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方法则可以查看所有列名。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181205G1M5CN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券