怎么在python中使用pymysql模块连接mysql数据库
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安
千家信息网最后更新 2025年01月21日怎么在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安全错误
数据库的锁怎样保障安全
apeach服务器
玉田咨询网络技术不二之选
网络安全答题为什么是0分
服务器ping默认频率
初一下册网络安全与道德
雷州定制软件开发
西子奥的斯电梯服务器的用法
数据库审计与安全审计
mt4哪个服务器快
网络安全钓鱼邮件宣传
浪潮服务器改造
不限制发包服务器
数据库系统 安全认证
文档管理系统服务器
idea数据库编程
网络安全进课堂视频下载
服务器管理器提示tcpip警告
恒生科技恒生互联网
国家三级计算机网络技术笔记
镇江互联网软件开发价钱
数据库系统配音
一谈网络技术总监招聘
主站从站和服务器和客户端
教育软件开发员
郑州直播软件开发流程
ai人工智能炒股软件开发
上海婉临网络技术有限公司
青浦区智能网络技术开发产品
华南理工许勇网络安全
网络安全钥匙字符不够