怎么在python中使用pymysql模块连接mysql数据库
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安
千家信息网最后更新 2025年11月08日怎么在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安全错误
数据库的锁怎样保障安全
数据库以表格形式显示出来
安全审计综合日志数据库
华为云怎么管理服务器
专利数据库专利申请文本
cs1.6 服务器端外网
首都网络安全日是每年的
阿里云服务器放小电影
网络安全宣传周观后感
roblox恐怖服务器推荐
重庆合川数据库培训
网络安全电子书高教版中职
传感器网络技术的英语是什么
互联网科技介绍ppt
年度网络安全公益盛典
年度网络安全等级保护
网络安全等级保护条例颁布
服务器只有上行没有下行
云服务器公网ip如何选择
java数据库同步多张表
济南养老管理软件开发
笔记本网络安全密匙哪里找
dns服务器没检测到
服务器一般怎么管理员密码
帝国cms数据库缓存
数据库归档日志大小在哪看
人与网络安全有啥关系
台服DNF数据库root用户
js通过c 数据库数据
服务器怎么拉黑别人
北大中文论文数据库