翼度科技»论坛 编程开发 python 查看内容

python3使用pymsql操作mysql数据库

14

主题

14

帖子

42

积分

新手上路

Rank: 1

积分
42
操作系统 :Windows 10_x64python版本 :3.9.2pymysql版本: 1.0.2MySQL版本: 5.7.38 之前写过一篇关于python操作mysql数据库的文章:
https://www.cnblogs.com/MikeZhang/p/pythonOptMysql20170703.html
当时是基于python 2.7 和 mysql 5.5来整理的,但目前python 2.7已经不再维护,主流的是python 3,今天基于python 3.9和mysql 5.7重新整理下访问mysql的文档,并提供基础使用示例、代码封装类,以及开发过程中可能会遇到的坑。
一、背景材料

 1、pymysql库

pymysql是一个纯python实现的mysql操作库,安装及使用起来比较方便,且可跨平台使用。
pypi地址: https://pypi.org/project/pymysql/
GitHub地址: https://github.com/PyMySQL/PyMySQL
文档地址:https://pymysql.readthedocs.io/en/latest/
安装命令:
  1. pip install pymysql
复制代码
2、heidisql数据库访问软件

Windows环境数据查看工具有很多,heidisql是我日常使用的mysql管理工具,这里也顺便提供下。
大致界面如下:

 个人感觉的优点如下:
1)免费;
2)提供绿色软件包,无需安装即可使用;
3)对数据库的界面操作可实时生成sql语句,便于复制;
官网: https://www.heidisql.com/
目前最新版是12.6,我经常使用的是9.4版,heidisql可自行从官网下载,也可从我文末提供的渠道获取(仅9.4版和12.6版的绿色包):
关注微信公众号(聊聊博文,文末可扫码)后回复 20231112 获取。
二、基础使用示例

查看版本信息:
  1. import pymysql
  2. print(pymysql.__version__)
复制代码
数据库连接:
  1. conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='', db='mysql')
  2. cur = conn.cursor()
复制代码
查询数据:
  1. cur.execute("SELECT Host,User FROM user")
  2. print(cur.description)
  3. for row in cur:
  4.     print(row)
复制代码
关闭连接:
  1. cur.close()
  2. conn.close()
复制代码
完整示例代码(mysqlTest1.py):
  1. #! /usr/bin/env python #-*- coding:utf-8 -*- import pymysqlconn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='mysql')cur = conn.cursor()cur.execute("SELECT Host,User FROM user")
  2. print(cur.description)
  3. for row in cur:
  4.     print(row)cur.close()
  5. conn.close()
复制代码
运行效果:

 三、封装示例

 1、为什么要封装

1)处理python3访问mysql常见的异常;
2)便于以后直接使用,避免重复造轮子;
 2、封装注意事项

1)需要提供检测MySQL连接状态的的接口,避免query时链接不可用;
2)提供重连机制;
3)执行insert、update语句时,考虑提交频率,提高执行效率;
4)提供回滚功能;
5)pymysql的connect函数里面autocommit默认为False,执行select语句时,需要添加主动commit动作,避免引起MySQL长事务;
 3、示例代码

这里提供一个完整的封装和使用示例代码,mysql表结构如下:
  1. CREATE TABLE `user1` (
  2.     `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  3.     `user_id` VARCHAR(20) NULL DEFAULT '0',
  4.     `user_name` VARCHAR(20) NULL DEFAULT '0',
  5.     `password` VARCHAR(20) NULL DEFAULT '0',
  6.     PRIMARY KEY (`id`)
  7. )
  8. ENGINE=InnoDB
  9. ;
复制代码
类封装及使用示例代码如下(mysqlTest2.py):

完整代码可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20231112 获取。
运行效果如下:

四、资源下载

本文涉及文件和示例代码从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20231112 获取。

 

来源:https://www.cnblogs.com/MikeZhang/p/pymyqlExample20231112.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具