Python酷玩之旅_如何毗连MySQL(mysql-connector-python)

打印 上一主题 下一主题

主题 823|帖子 823|积分 2469

前言

Python作为数据科学、机器学习等范畴的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。
正如Java中的JdbcDriver一样,Python中也有同样角色的库。比如本日博主正要先容的mysql-connector-python,它是Python中操作数据库的常用工具,我们先从它说起吧,Let’s go~


一、mysql-connector-python

1. 简介

Python中毗连mysql有各种工具支持,博主推荐使用mysql-connector-python,它是MySQL官方提供的标准工具,依赖少,查询方便。
2. 安装

在python中安装mysql-connector-python很简朴,只需执行如下命令:
  1. # 使用清华源
  2. pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector-python
复制代码
安装过程:

安装效果:

二、数据操作教程(源码)

安装mysql-connector-python完成后,我们可以恣意的玩耍玩耍,先来看看如何毗连。
1. 创建毗连

我们可通过mysql.connector.connect创建毗连,示例代码:
  1. connection = mysql.connector.connect(
  2.     host=[HOST_NAME],
  3.     user=[USERNAME],
  4.     passwd=[PASSWORD],
  5.     database=[DATABASE]
  6. )
复制代码
此中,它支持哪些参数,我们来看看:
参数分析host数据库主机IPport数据库端口,默认3306user数据库用户password数据库密码database数据库名称autocommit是否自动提交事务,默认为Falsecharset字符编码pool_name毗连池名称pool_size毗连池大小 2. 查询

创建毗连后,先做一个查询吧(代码已封装,请参考执行):
  1. import mysql.connector
  2. from mysql.connector import Error
  3. class  MysqlUtil:
  4.     def __init__(self, host_name, user_name, passwd, db_name):
  5.         self.host_name = host_name
  6.         self.user_name = user_name
  7.         self.passwd = passwd
  8.         self.db_name = db_name
  9.     def get_connection(self):
  10.         connection = None
  11.         try:
  12.             connection = mysql.connector.connect(
  13.                 host=self.host_name,
  14.                 user=self.user_name,
  15.                 passwd=self.passwd,
  16.                 database=self.db_name
  17.             )
  18.             print("恭喜你,成功连接MySQL")
  19.         except Error as e:
  20.             print(f"异常啦,原因: '{e}'")
  21.         return connection
  22.     def query(self,conn, sql):
  23.         try:
  24.            cursor = conn.cursor()
  25.            cursor.execute(sql)
  26.            return cursor
  27.         except Error as e:
  28.             print(f"异常啦,原因: '{e}'")
  29. if __name__ == '__main__':
  30.     # 连接信息
  31.     host = '127.0.0.1'
  32.     user = 'root'
  33.     password = '123456'
  34.     database = 'mysql'
  35.     # 创建连接
  36.     mysql_util = MysqlUtil(host, user, password, database)
  37.     conn = mysql_util.get_connection()
  38.     # 查询
  39.     sql = 'select * from 表名'
  40.     my_cursor = mysql_util.query(conn, sql)
  41.     result = my_cursor.fetchall()
  42.     print(f'查询记录数:{len(result)}')
  43.    
  44.     # 关闭游标
  45.     my_cursor.close()
  46.     # 关闭连接
  47.     conn.close()
复制代码
  提示:查询完成后,一定要关闭游标和毗连。
  3. 新增

新增记录时,可在查询源码的底子上,封装一个insert函数:
  1. # 插入记录
  2. def insert(self, conn, sql, val):
  3.     try:
  4.         cursor = conn.cursor()
  5.         cursor.execute(sql,val)
  6.         return cursor
  7.     except Error as e:
  8.         print(f"异常啦,原因: '{e}'")
复制代码
在main函数中,举行测试:
  1. # 创建连接
  2. mysql_util = MysqlUtil(host, user, password, database)
  3. conn = mysql_util.get_connection()
  4. # SQL
  5. sql = "INSERT INTO 表名(id,name) VALUES (%s, %s)"
  6. val = ('1','python')
  7. mysql_util.insert(conn,sql, val)
  8. # 提交
  9. conn.commit()
  10. # 关闭连接
  11. conn.close()
复制代码
4. 删除

同理,删除我们也可以封装一个delete函数,因为和insert类似,这里不再出现。只需调整执行的SQL即可:
  1. # SQL
  2. sql = "delete from 表名 where name=%s"
  3. val = ('python',)
复制代码
5. 事务

在创建游标前,我们可以自动开启一个事务:
  1. conn = mysql_util.get_connection()
  2. # 开始事务
  3. conn.start_transaction()
  4. """ 数据操作 """
复制代码
最后一步很重要,一定要提交哦:
  1. # 提交事务
  2. conn.commit()
复制代码
6. 其他

其他场景比如按条件查询,删除表,清空表等操作,均可通过改变SQL的方式,执行相关数据操作。这里不再一一罗列,是不是很简朴?
结语

mysql-connector-python是一款mysql官方支持的数据库工具,博主通过示例出现了它的能力和优势,希望对你有帮助。
走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表