pymysql知道这些就够了

本文详细介绍如何在Python3环境中使用pymysql库连接并操作MySQL数据库,包括库的导入、安装配置及数据库连接的创建过程。通过实例展示,帮助读者快速掌握Python3下MySQL的使用方法。

pymysql是Python3中链接MySQL的库,在Python2中使用的是mysqldb这个库。

  • 在Python3中可以通过如下方式导入mysqldb。

pymysql与mysqldb的用法完全一样,直接import pymysql使用中其自身代码会涉及到mysqldb。所以用下列语句导入。

import pymysql
pymysql.install_as_MySQLdb()
  • pymysql的另一个重要功能是创建mysql数据库连接

con = pymysql.connect(host=localhost, user=username, password=password, database=dbname, charset='utf8', use_unicode=True)
  • 参考

  1. 菜鸟教程
  2. N3xt-Tech 博客

.
.
.
2019-01-22 21:17:21写于邹平市

.
.
.
2019-08-09 修改

`PyMySQL` 是 Python 中一个纯 Python 实现的 MySQL 数据库连接库,它支持与 MySQL 数据库进行交互,常用于小型项目或与 `SQLAlchemy`、`DBUtils` 等 ORM/连接池工具配合使用。 --- ## ✅ PyMySQL 基本使用方法 ### 1. 安装 ```bash pip install pymysql ``` --- ### 2. 基本连接与操作 #### 2.1 连接数据库 ```python import pymysql conn = pymysql.connect( host='localhost', port=3306, user='root', password='your_password', database='test_db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor # 返回字典格式结果 ) ``` #### 2.2 查询数据 ```python cursor = conn.cursor() cursor.execute("SELECT * FROM users") result = cursor.fetchall() for row in result: print(row) ``` #### 2.3 插入数据 ```python cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ("Alice", "alice@example.com")) conn.commit() ``` #### 2.4 更新数据 ```python cursor.execute("UPDATE users SET email = %s WHERE name = %s", ("new_email@example.com", "Alice")) conn.commit() ``` #### 2.5 删除数据 ```python cursor.execute("DELETE FROM users WHERE name = %s", ("Alice",)) conn.commit() ``` #### 2.6 关闭连接 ```python cursor.close() conn.close() ``` --- ## ✅ PyMySQL 的常见问题与注意事项 ### 1. 参数化查询(防止 SQL 注入) ```python cursor.execute("SELECT * FROM users WHERE name = %s", ("Alice",)) ``` > ⚠️ 注意:参数必须是元组,即使只有一个参数,也要加逗号 `(value,)` --- ### 2. 使用上下文管理器(自动关闭) ```python with conn.cursor() as cursor: cursor.execute("SELECT * FROM users") result = cursor.fetchall() print(result) # 自动关闭 cursor ``` --- ### 3. 与连接池配合使用(推荐) 虽然 PyMySQL 本身不提供连接池功能,但可以配合 `DBUtils` 或 `SQLAlchemy` 使用连接池: #### 示例:使用 DBUtils 创建连接池 ```python from DBUtils.PooledDB import PooledDB import pymysql pool = PooledDB( creator=pymysql, maxconnections=5, host='localhost', user='root', password='your_password', database='test_db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) # 获取连接 conn = pool.connection() cursor = conn.cursor() cursor.execute("SELECT * FROM users") result = cursor.fetchall() print(result) ``` --- ## ✅ PyMySQL 与 MySQLdb 的区别 | 特性 | PyMySQL | MySQLdb | |------|---------|---------| | 是否纯 Python 实现 | ✅ 是 | ❌ 否(C 扩展) | | 是否支持 Python 3 | ✅ 支持 | ❌ 不支持 Python 3.9+ | | 安装是否简单 | ✅ pip 安装即可 | ❌ 需要依赖 MySQL 开发库 | | 是否跨平台 | ✅ 是 | ❌ Linux 为主 | --- ## ✅ 小结:PyMySQL 的适用场景 - 项目较小,不需要 ORM - 需要与 `SQLAlchemy`、`DBUtils` 等结合使用 - 需要跨平台兼容性 - 不依赖 C 扩展的轻量级项目 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值