怎么在python中使用pymysql模块连接mysql数据库
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇文章给大家分享的是有关怎么在python中使用pymysql模块连接mysql数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安
千家信息网最后更新 2024年09月22日怎么在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安全错误
数据库的锁怎样保障安全
服务器端车牌识别助力智慧交通
数据库查询对象名无效了
网络技术中的纠错算法
网络技术综合管理员
车载服务器连接中断
下列关于关系数据库的说法
英伟达 服务器显卡
佛山网络安全招聘
本机服务器的域名和IP是什么
服务器安全策略来屏蔽ip
深圳软件开发者平台哪个好
服务器1.12.2ip地址
mac连接远程服务器命令
注册一个网络技术公司
郑州电脑软件开发价钱
软件开发语言什么意思
万方数据库有些论文只有引用
优秀网络安全教育平台
网络安全法自那时起正式实施
学校服务器端地址是什么
网络安全态势概念
VR用什么软件开发的
服务器登录设置在哪
手机阿里云服务器安装软件
徐汇区信息软件开发服务要求
谷歌邮箱接收服务器密码
游戏服务器更新为什么会卡
csmar数据库如何筛选数据
舞力全开服务器
女生自学网络技术