1、安装方法:
pip install records mysqlclient
2、连接数据库:
1 import records 2 # root:数据库用户名 3 # root:数据密码 4 # localhost:数据库地址 5 # 3306:数据库端口号 6 # mytest:数据库名称 7 db = records.Database('mysql://root:root@localhost:3306/mytest?charset=utf8')
3、简单的查询:
# 查询数据 rows = db.query("select * from user") for r in rows: print(r.id, r.mobile, r.passwd)
4、获取查询结果的方法介绍:
查询到数据以后,可以通过all()方法获取所有的记录,支持3种类型。
◆ 默认是自己封装的RecordCollection对象
◆ 也可以通过as_dict=True参数转成字典形式
◆ 可以通过as_ordereddict=True转成排序字典形式
# 获取第一条数据 print(rows.first()) # 以字典形式获取第一个 print(rows.first(as_dict=True)) # 查询唯一的一个 print(rows.one()) # 获取所有数据 print("all方法获取所有数据:", rows.all()) # 转为json # print(rows.as_dict()) print(rows.all(as_dict=True)) # 排序字典 print(rows.first(as_ordereddict=True)) # 导出为具体格式,支持: csv、yaml、json、xls、df(DataFrame) print(rows.export("yaml")) # 转为表格形式 print(rows.dataset) # 数据导出到excel文件 with open("user.xlsx","wb") as f: f.write(rows.export("xlsx"))
5、插入单条数据:
# 支持variable定义变量,通过参数传入完成动态传值,在需要动态加载数据的时候非常有用: user = {"mobile": "13066669999", "passwd": "666666"} sql = 'insert into user(mobile,passwd) values (:mobile,:passwd)' res = db.query(sql, **user) # 获取返回结果 # print(res.pending) if res.pending: print("插入成功") else: print("插入失败")
6、插入多条数据
users = [ {"mobile": "13066660000", "passwd": "666666"}, {"mobile": "13066660001", "passwd": "666666"}, {"mobile": "13066660002", "passwd": "666666"} ] sql = 'insert into user(mobile,passwd) values (:mobile,:passwd)' res = db.bulk_query(sql, users)
参考资料:
https://mp.weixin.qq.com/s?__biz=MzUxMTA3NzgzMQ==&mid=2247491479&idx=1&sn=072c4412dd62ba928e4d1724ad636f9c&chksm=f978633fce0fea29163f527657febee6e9d4e0bd57387df9878adf8d81bd64915d9afe832d64&mpshare=1&scene=1&srcid=&sharer_sharetime=1566521957255&sharer_shareid=07a84e301bcab5607399b81d4cf8c58c&key=7e5df62132e2da6f6ca89e1f9d018cb48763871a895c4685206f95637a38610399e6a10a9db05e9eaa32d52289b4baf3e078f38216e660aa76065a913c6f0f7ca53da6b9c495e9cfb8b472e23913d5af&ascene=1&uin=MjI4MzU0MzI0MQ%3D%3D&devicetype=Windows+10&version=62060844&lang=zh_CN&pass_ticket=hOFgLRgrATK184vvb5U7D27bmc%2FJ6luldzn0Fh9w3qo797LhhxGiOflgYubWpW%2BT