如何优雅的操作数据库?

如何优雅的操作数据库?

今天要介绍的这个python第三方库非常厉害,完美操作各种数据库。

名字叫records,在网上很少有这个库的相关资料,但是在开源社区可是很火热的哦。

如果这还不能打消你的顾虑,再告诉你一件事:如果你用python编程,你一定听过requests,这两个库是同一个作者写的。

01、快速使用

使用步骤:

1、连接数据库,返回db数据库对象

2、db对象执行sql语句

获取数据库的格式是标准的URL格式。

如果使用的不是mysql数据库,只需要换掉数据库类型就可以了:

02、创建表

03、插入单条数据

records支持使用 :variable定义变量,通过参数传入完成动态传值,在需要动态加载数据的时候非常有用:

04、插入多条数据

sql语句在执行多条数据操作的时候非常不方便,尤其是当值还是变化的时候。

records提供的bulk_query方法能快捷的插入和更新多条数据:

05、数据查询

查询到数据以后,可以通过all()方法获取所有的记录,支持3种类型。

默认是自己封装的RecordCollection对象

也可以通过as_dict=True参数转成字典形式

可以通过as_ordereddict=True转成排序字典形式

06、简洁的数据库事务支持

数据库事务是经常需要使用到的数据库操作,他通常是为了保持数据原子性和一致性。

比如一个转账的数据库操作:

1、从yuze账号中读取余额

2、对yuze账号余额减去转账-400

3、从chaoge账号中把余额读出来

4、对chaoge账号做加法操作(+400)

我们必须保证这4步同时执行成功,要么同时都不成功。

如果前2步已经执行成功,但是到第3步发生了错误导致后面都不能执行,就会出现问题:

yuze的账号被扣了钱,但是chaoge的账号却没有加钱。

通过数据库事务就能避免这种情况。

07、数据导出为json

数据库数据得到以后还需要进一步的操作,比如保存起来。

08、数据导出到Excel文件

最常用的是如果需要各种各样的报表,需要放到excel文件中保存起来。

导出的数据效果:

09、总结

records支持多种不同的数据库;

records的方法非常简单和统一,不像pymysql还需要记住如游标对象这样的底层信息;

自动实现上下文管理器,不需要关注链接状态;

支持 :variable方言,以安全的形式进行动态参数传递,防止sql语句不规范导致的安全问题;

支持数据库事务,保持数据的原子性和一致性;

轻松导出为json, yaml, xls, xlsx, pandas, html等多种数据格式。

源码非常简单,你一定看得懂。

本文由柠檬班雨泽老师原创,转载需注明出处!

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

扫码关注云+社区

领取腾讯云代金券