Python中使用PyMySQL模块的方法详解

 更新时间:2024年08月01日 09:44:45   作者:Az_plus  
Python中的pymysql模块是用于连接MySQL数据库的一个第三方库,它提供了一套API,使得Python程序员能够方便地执行SQL语句、操作数据库,下面这篇文章主要给大家介绍了关于Python中使用PyMySQL模块的相关资料,需要的朋友可以参考下

安装

pip install pymysql

连接数据库

使用connect函数创建连接对象

此对象提供数据库的关闭、事务提交、事务回滚等操作

示例:

import pymysql

# 以下为必填参数
conn = pymysql.connect(user='root',			# 用户名
                      password='123456',	# 密码
                      host='127.0.0.1',		# 服务器地址
                      port=3306,			# 数据库端口
                      database='emp'		# 要连接的数据库
                      )		

connect拓展

进入connect函数可以看到更多参数:

def __init__(
        self,
        *,
        user=None,  	# 用户名
        password="",	# 密码
        host=None,		# 连接地址
        database=None,	# 库名
        unix_socket=None,	# 如果使用Unix套接字连接到数据库,指定套接字文件的路径
        port=0,			# 数据库端口号
        charset="",		# 使用的字符集 MySQL中一般是utf8mb4
        collation=None,	# 指定排序规则
        sql_mode=None,	# 连接使用的SQL模式
        read_default_file=None,	# 指定默认连接参数的配置文件路径
        conv=None,		# 自定义类型转换器
        use_unicode=True,	# 是否使用Unicode编码
        client_flag=0,	# 客户端标志位
        cursorclass=Cursor,	# 游标类,用于处理查询结果
        init_command=None,	# 建立连接后执行的初始命令
        connect_timeout=10,	# 连接超时时间
        read_default_group=None,	# 读取默认连接参数的组名
        autocommit=False,	# 是否自动提交事务
        local_infile=False,	# 是否允许本地加载数据文件
        max_allowed_packet=16 * 1024 * 1024,	# 允许的最大数据包大小
        defer_connect=False,# 是否延迟连接
        auth_plugin_map=None,	# 指定认证插件映射
        read_timeout=None,	# 读取超时时间(秒)
        write_timeout=None,	# 写入超时时间(秒)
        bind_address=None,	# 绑定本地地址
        binary_prefix=False,# 是否启用二进制前缀
        program_name=None,	#程序名称
        server_public_key=None,	# 服务器公钥
        ssl=None,		# 是否使用SSL/TLS加密连接
        ssl_ca=None,	# 指定CA证书文件的路径
        ssl_cert=None,	# 指定客户端证书文件的路径
        ssl_disabled=None,	#是否禁用SSL
        ssl_key=None,	# 指定客户端私钥文件的路径
        ssl_verify_cert=None,	# 是否验证服务器证书
        ssl_verify_identity=None,	# 是否验证服务器身份
        compress=None,  # 不支持
        named_pipe=None,  # 不支持
        passwd=None,	# 已弃用
		db=None,		# 已弃用
    )

获取游标

conn = pymysql.connect(user='root',  # 用户名
                       password='7997',  # 密码
                       host='127.0.0.1',  # 服务器地址
                       port=3306,  # 数据库端口
                       database='emp',  # 连接的数据库
                       cursorclass=DictCursor  # 返回字典
                       )
cursor = conn.cursor() # 获取游标

操作数据

查找

import pymysql
from pymysql.cursors import DictCursor

conn = pymysql.connect(user='root',  # 用户名
                       password='7997',  # 密码
                       host='127.0.0.1',  # 服务器地址
                       port=3306,  # 数据库端口
                       database='emp',  # 连接的数据库
                       cursorclass=DictCursor  # 返回字典
                       )
cursor = conn.cursor()

sql = 'select * from emp5'
cursor.execute(sql)
res = cursor.fetchall()
print(res) # 返回一个由列表包裹的字典

# 输出:[{'id': 1, 'name': '张三', 'time': datetime.datetime(2024, 1, 25, 15, 24, 19), 'age': 18, 'wages': 2000, 'dep_id': 203}, {'id': 2, 'name': '倪哥', 'time': datetime.datetime(2024, 1, 25, 15, 34, 11), 'age': 20, 'wages': 1000, 'dep_id': 201}]

添加

进行增删改时注意提交事务conn.commit

import pymysql
from pymysql.cursors import DictCursor

conn = pymysql.connect(user='root',  # 用户名
                       password='7997',  # 密码
                       host='127.0.0.1',  # 服务器地址
                       port=3306,  # 数据库端口
                       database='emp',  # 连接的数据库
                       cursorclass=DictCursor  # 返回字典
                       )
cursor = conn.cursor()

sql_insert = 'insert into emp5 (name) value(%s) '
# 元组形式传参
cursor.execute(sql_insert, ("嗨嗨嗨",))
conn.commit()	# 提交事务
sql_insert = 'insert into emp5 (name) value(%s) '
# 字典形式传参
cursor.execute(sql_insert, {'emp_name': "员工二号"})
conn.commit()

添加成功~

更新

import pymysql
from pymysql.cursors import DictCursor

# 以下为必填参数
conn = pymysql.connect(user='root',  # 用户名
                       password='7997',  # 密码
                       host='127.0.0.1',  # 服务器地址
                       port=3306,  # 数据库端口
                       database='emp',  # 连接的数据库
                       cursorclass=DictCursor  # 返回字典
                       )
cursor = conn.cursor()

# 列表形式传参
sql_update = 'update emp5 set name=%s where id=%s '
cursor.execute(sql_update, ['员工三号', 11])
conn.commit()

总结 

到此这篇关于Python中使用PyMySQL模块的文章就介绍到这了,更多相关Python使用PyMySQL模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python爬虫开发与项目实战

    Python爬虫开发与项目实战

    本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原理以及Scrapy爬虫框架,最后介绍大规模数据下分布式爬虫的设计以及PySpider爬虫框架等,需要的朋友快来下载电子版吧
    2020-12-12
  • Python机器学习算法库scikit-learn学习之决策树实现方法详解

    Python机器学习算法库scikit-learn学习之决策树实现方法详解

    这篇文章主要介绍了Python机器学习算法库scikit-learn学习之决策树实现方法,结合实例形式分析了决策树算法的原理及使用sklearn库实现决策树的相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • Python OpenCV招商银行信用卡卡号识别的方法

    Python OpenCV招商银行信用卡卡号识别的方法

    这篇文章主要介绍了Python OpenCV招商银行信用卡卡号识别的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • pymongo insert_many 批量插入的实例

    pymongo insert_many 批量插入的实例

    这篇文章主要介绍了pymongo insert_many 批量插入的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • python3中str(字符串)的使用教程

    python3中str(字符串)的使用教程

    这篇文章主要介绍了python3中str(字符串)的使用教程,文中介绍的非常详细,对python3中各种str字符串的操作都包含这篇文章中了,需要的朋友可以参考学习,下面来一起看看吧。
    2017-03-03
  • Python实现问题回答小游戏

    Python实现问题回答小游戏

    这篇文章主要介绍了利用Python制作一个简单的知识竞赛小游戏,可以实现回答问题功能,文中的示例代码介绍详细,感兴趣的同学快跟随小编一起学习吧
    2021-12-12
  • python链接oracle数据库以及数据库的增删改查实例

    python链接oracle数据库以及数据库的增删改查实例

    下面小编就为大家分享一篇python链接oracle数据库以及数据库的增删改查实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 深入理解Django的信号机制

    深入理解Django的信号机制

    本文主要介绍了深入理解Django的信号机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 如何用scheduler实现learning-rate学习率动态变化

    如何用scheduler实现learning-rate学习率动态变化

    这篇文章主要介绍了如何用scheduler实现learning-rate学习率动态变化问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 简单了解python关系(比较)运算符

    简单了解python关系(比较)运算符

    这篇文章主要介绍了简单了解python关系(比较)运算符,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论