前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python又一神作,轻量级DB操作库--records

Python又一神作,轻量级DB操作库--records

作者头像
上帝De助手
发布2019-12-05 18:10:18
2.8K0
发布2019-12-05 18:10:18
举报
文章被收录于专栏:TestQATestQA

使用过Python的朋友,或多或少都会涉及到关于DB的操作;底层的工具有像pymysql、MySQLdb,高级的ORM有像sqlarchemy等等。今天推荐的介于他们之间的轻量级DB库--records。

日常工作中一不小心就要操作MySQL这样的数据库,之前使用过的MySQL库包括pymysql、MySQLdb、sqlarchemy。虽然都可以使用并能满足日常的工作,但是当我遇到records之后,就开始犯起了“喜新厌旧”的老毛病了!

那么,records有哪些优点呢?首先它不像pymysql这类工具,需要直接操作游标这类对象;其次它不像sqlarchemy这样需要先写DB模型才能执行操作。那么它是怎么操作的呢?

安装

代码语言:javascript
复制
pip install records

使用

代码语言:javascript
复制
import records

db = records.Database('mysql+pymysql://username:password@localhost/dbname?charset=utf8')
rows = db.query("select * from tablename")
for row in rows:
   print(row.field1, row.field2, row.field3)

可以看到,一共只需四行代码就可以实现DB对象级的数据查询。这才是真正的为人类服务的库。忘了说了,records的作者与requests的作者正是同一个大神!!!

另外,从连接DB的参数也可以知道,records并不是只能支持mysql,它还可以支持很多其它的关系型DB,比如:RedShift, Postgres, MySQL, SQLite, Oracle, and MS-SQL等等,当然前提是底层的对应驱动库需要先安装好了!

query万物

records的世界,执行sql只有一个方法,那就是query。不管是查询、更新、删除,都只有query一个接口。其它sql命令,比如:创建表、创建DB等也是同样的接口。所以query就是execsql的代名词,query可以做任何事情。

代码语言:javascript
复制
import records

db = records.Database('mysql+pymysql://username:password@localhost/dbname?charset=utf8')
db.query("CREATE DATABASE dbname;")
db.query("USE dbname;")
db.query("SHOW DATABASES;")

结果集输出

除了在连接、查询上面体现了简洁之外,在结果集的输出上面也是令人惊艳!即可以支持索引,也可以支持切片,更可以直接进行迭代。

代码语言:javascript
复制
import records

db = records.Database('mysql+pymysql://username:password@localhost/dbname?charset=utf8')
rows = db.query("select * from tablename")
print(rows[0])
print(rows[2:4])
print(rows.all())
print(rows.first())
print(rows.one())

结果集导出

其它DB库都没有提供这样的看似很常见的功能,但是records就是有。只能用它,用它!

代码语言:javascript
复制
import records

db = records.Database('mysql+pymysql://username:password@localhost/dbname?charset=utf8')
rows = db.query("select * from tablename")
# 查看结果集
print(rows.dataset)
print(rows.export('csv'))
print(rows.export('yaml'))
print(rows.export('json'))
# Pandas DataFrame
rows.export('df')
# excel
with open('report.xls', 'wb') as f:
    f.write(rows.export('xls'))

心动了么,赶紧上手吧!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TestQA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
  • query万物
  • 结果集输出
  • 结果集导出
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档