怎么在python中使用pymysql模块连接mysql数据库
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安
千家信息网最后更新 2026年11月01日怎么在python中使用pymysql模块连接mysql数据库
本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
安装pymysql
pip install pymysql
2|0使用pymysql
2|1使用数据查询语句
查询一条数据fetchone()
from pymysql import *conn = connect( host='127.0.0.1', port=3306, user='root', password='123456', database='itcast', charset='utf8')# 创建游标c = conn.cursor()# 执行sql语句c.execute("select * from student")# 查询一行数据result = c.fetchone()print(result)# 关闭游标c.close()# 关闭数据库连接conn.close()"""(1, '张三', 18, b'\x01')"""查询多条数据fetchall()
from pymysql import *conn = connect( host='127.0.0.1', port=3306, user='root', password='123456', database='itcast', charset='utf8')# 创建游标c = conn.cursor()# 执行sql语句c.execute("select * from student")# 查询多行数据result = c.fetchall()for item in result: print(item)# 关闭游标c.close()# 关闭数据库连接conn.close()"""(1, '张三', 18, b'\x01')(2, '李四', 19, b'\x00')(3, '王五', 20, b'\x01')"""更改游标的默认设置,返回值为字典
from pymysql import *conn = connect( host='127.0.0.1', port=3306, user='root', password='123456', database='itcast', charset='utf8')# 创建游标,操作设置为字典类型c = conn.cursor(cursors.DictCursor)# 执行sql语句c.execute("select * from student")# 查询多行数据result = c.fetchall()for item in result: print(item)# 关闭游标c.close()# 关闭数据库连接conn.close()"""{'id': 1, 'name': '张三', 'age': 18, 'sex': b'\x01'}{'id': 2, 'name': '李四', 'age': 19, 'sex': b'\x00'}{'id': 3, 'name': '王五', 'age': 20, 'sex': b'\x01'}"""返回一条数据时也是一样的。返回字典或者时元组看个人需要。
2|2使用数据操作语句
执行增加、删除、更新语句的操作其实是一样的。只写一个作为示范。
from pymysql import *conn = connect( host='127.0.0.1', port=3306, user='root', password='123456', database='itcast', charset='utf8')# 创建游标c = conn.cursor()# 执行sql语句c.execute("insert into student(name,age,sex) values (%s,%s,%s)",("小二",28,1))# 提交事务conn.commit()# 关闭游标c.close()# 关闭数据库连接conn.close()和查询语句不同的是必须使用commit()提交事务,否则操作就是无效的。
3|0编写数据库连接类
普通版
MysqlHelper.py
from pymysql import connect,cursorsclass MysqlHelper: def __init__(self, host="127.0.0.1", user="root", password="123456", database="itcast", charset='utf8', port=3306): self.host = host self.port = port self.user = user self.password = password self.database = database self.charset = charset self._conn = None self._cursor = None def _open(self): # print("连接已打开") self._conn = connect(host=self.host, port=self.port, user=self.user, password=self.password, database=self.database, charset=self.charset) self._cursor = self._conn.cursor(cursors.DictCursor) def _close(self): # print("连接已关闭") self._cursor.close() self._conn.close() def one(self, sql, params=None): result: tuple = None try: self._open() self._cursor.execute(sql, params) result = self._cursor.fetchone() except Exception as e: print(e) finally: self._close() return result def all(self, sql, params=None): result: tuple = None try: self._open() self._cursor.execute(sql, params) result = self._cursor.fetchall() except Exception as e: print(e) finally: self._close() return result def exe(self, sql, params=None): try: self._open() self._cursor.execute(sql, params) self._conn.commit() except Exception as e: print(e) finally: self._close()该类封装了fetchone、fetchall、execute,省去了数据库连接的打开和关闭和游标的打开和关闭。
下面的代码是调用该类的小示例:
from MysqlHelper import *mysqlhelper = MysqlHelper()ret = mysqlhelper.all("select * from student")for item in ret: print(item)"""{'id': 1, 'name': '张三', 'age': 18, 'sex': b'\x01'}{'id': 2, 'name': '李四', 'age': 19, 'sex': b'\x00'}{'id': 3, 'name': '王五', 'age': 20, 'sex': b'\x01'}{'id': 5, 'name': '小二', 'age': 28, 'sex': b'\x01'}{'id': 6, 'name': '娃哈哈', 'age': 28, 'sex': b'\x01'}{'id': 7, 'name': '娃哈哈', 'age': 28, 'sex': b'\x01'}"""上下文管理器版mysql_with.pyfrom pymysql import connect, cursorsclass DB: def __init__(self, host='localhost', port=3306, db='itcast', user='root', passwd='123456', charset='utf8'): # 建立连接 self.conn = connect( host=host, port=port, db=db, user=user, passwd=passwd, charset=charset) # 创建游标,操作设置为字典类型 self.cur = self.conn.cursor(cursor=cursors.DictCursor) def __enter__(self): # 返回游标 return self.cur def __exit__(self, exc_type, exc_val, exc_tb): # 提交数据库并执行 self.conn.commit() # 关闭游标 self.cur.close() # 关闭数据库连接 self.conn.close()如何使用:
from mysql_with import DBwith DB() as db: db.execute("select * from student") ret = db.fetchone() print(ret)"""{'id': 1, 'name': '张三', 'age': 18, 'sex': b'\x01'}"""以上就是怎么在python中使用pymysql模块连接mysql数据库,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
数据
游标
数据库
语句
查询
张三
字典
李四
王五
模块
事务
就是
更多
知识
篇文章
类型
多行
娃哈哈
不同
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网科技有限公司经营范围
朗新科技与工业互联网
科技与互联网发展
美国互联网科技
互联网科技视频素材
上海卓越科技 互联网
互联网金融和金融科技
恒生科技互联网指数分析
中国最先进互联网科技公司
深圳前海聚择互联网科技有限公司
广州恒生互联网科技有限
翼展科技 首家互联网医院
互联网在线教育科技创业
互联网金融科技名词解释
浙南科技城互联网大厦招聘
互联网科技快讯热点
神州科技互联网有限公司
银川新华互联网科技学校原画
华人运通互联网科技公司
随着互联网科技发展
互联网企业和科技型企业
港股科技和互联网
坤平互联网科技
亳州好赞互联网科技有限公司
想开互联网科技公司怎么样
中和天地互联网科技有限公司
雨阳互联网卡科技有限公司
风投北京互联网科技
科技互联网公司两年变化