python orm库_周边生态贡献者+1,一个TDengine的Python ORM库—crown

本文介绍了一个用于操作TDengine的 Python ORM库。本文的预期读者是,需要使用Python语言操作TDengine数据库的开发人员。

什么是ORM?

ORM就是对象关系映射(Object Relational Mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。简单说来就是,通过建立类与数据库表,对象与数据库数据条目的对应关系。从而可以通过编程语言的数据类型操作数据库。

为TDengine开发ORM库的动因

作为一个使用Python作为主力编程语言的开发者,笔者经常要编写操作各种数据库的代码。对于键值对类型(如:Redis)或者文档类型(如:MongoDB)的数据库,Python生态都提供了很好的第三方连接库。而对于最常使用的关系型数据( 如:MySQL、PostgreSQL),Python则提供了SQLAlchemy、Peewee等ORM第三方库的解决方案。所以,笔者日常工作中,需要手工拼接SQL查询语句的场景非常少 ( 甚至慢慢忘记了这项技能)。

近来,笔者需要带领团队完成一个智能电力系统的项目。在技术选型过程中发现了优秀的物联网大数据平台TDengine 。经过测试和评估发现,无论从超高性能和稳定性、还是简洁的设计、开源的理念。TDengine都非常适合作为智能电力系统的基础平台使用。但是,在使用过程中,我们发现了一个比较棘手的问题。那就是:由于 TDengine 诞生不久,相比较其他已经发展很多年的其他数据库平台,周边的相关生态软件还略少一些。特别是,苹果操作系统OS X下暂时没有原生连接器可用,写好的程序需要拿到Linux上去调试。这对于被“宠坏”的python程序员来讲真得没法适应。而且考虑到笔者团队中其他程序员都习惯了ORM的操作方式,对原始SQL并不熟悉。所以,笔者意识到:如果使用原生的连接器进行开发,将会遇到很多困难。于是就开始了TDengine的开源ORM库的开发。一方面,可以帮助团队更高效的完成系统开发工作。另外一方面,也可以为帮助TDengine更好的完善生态工具链。

如何安装和使用

简介需要Python 3.0版本以上

在TDengine 2.0.8版本测试通过

解决Mac操作系统下没有原生Python连接器的问题

极大的降低了Python程序员使用TDengine技术门槛

可以方便的将数据转换到numpy与pandas由于目前TDengine没有提供Mac操作系统下的原生client, 为保证库的兼容性,目前crown库底层使用的RESTful接口进行连接。以后的版本中,笔者将提供在Windows和Linux下的原生连接器接口可供配置使用。

项目地址:

安装

crown库像其他Python第三方库一样,可以通过pip,轻松安装最新版本:pip install crown

还可以通过git安装,使用方法:git clone https://github.com/machine-w/crown.gitcd crowmpython setup.py install

简单使用

1.连接数据库

使用crown连接TDengine,只需要提供taos restful服务的地址、端口号、以及需要操作的数据库名。然后即可使用TdEngineDatabase类新建一个数据库对象。以下为连接数据库的例子代码:from crown import * #导入库

DATABASENAME = 'taos_test' #数据库名

HOST = 'localhost'

PORT = 6041

db = TdEngineDatabase(DATABASENAME) # 默认端口 6041,默认用户名:root,默认密码:taosdata

#如不使用默认参数,可以使用下面的方法提供参数

# db = TdEngineDatabase(DATABASENAME,host=HOST,port=PORT,user='yourusername',passwd='yourpassword')

# 一般情况我们使用connect方法尝试连接数据库,如果当前数据库不存在,则会自动建库。

db.connect()

# 连接数据库后,db对象后会自动获取全部数据库信息,以字典的形式保存在属性databases中。

print(db.databases)

#当然也可以使用手动建库方法建立数据库。

db.create_database(safe=True) #参数safe为True表示:如果库存在,则跳过建库指令。

#可选字段:建库时配置数据库参数,具体字段含义请参考tdengine文档。

# db.create_databa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值