Python 操作MySQL详解及实例
发布时间 - 2026-01-11 00:54:29 点击率:次Python 操作MySQL详解及实例

使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy。
Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持Python3。
PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。
SQLAlchemy是一个ORM框架,它并不提供底层的数据库操作,而是要借助于MySQLdb、PyMySQL等第三方库来完成,目前SQLAlchemy在Web编程领域应用广泛。
本文主要介绍PyMySQL的正确使用方法,示例代码都是选自实战项目。
安装
简单的方式:
pip install pymysql
如果无法联网,需要进行离线安装,例如:
pip install pymysql-x.x.x.tar.gz
导入
import pymysql
连接
def connect_wxremit_db():
return pymysql.connect(host='10.123.5.28',
port=3306,
user='root',
password='root1234',
database='db_name',
charset='latin1')
查询
def query_country_name(cc2):
sql_str = ("SELECT Fcountry_name_zh"
+ " FROM t_country_code"
+ " WHERE Fcountry_2code='%s'" % (cc2))
logging.info(sql_str)
con = mysql_api.connect_wxremit_db()
cur = con.cursor()
cur.execute(sql_str)
rows = cur.fetchall()
cur.close()
con.close()
assert len(rows) == 1, 'Fatal error: country_code does not exists!'
return rows[0][0]
简单插入
def insert_file_rec(self, file_name, file_md5):
con = mysql_api.connect_wxremit_db()
cur = con.cursor()
try:
sql_str = ("INSERT INTO t_forward_file (Ffile_name, Ffile_md5)",
+ " VALUES ('%s', '%s')" % (file_name, file_md5))
cur.execute(sql_str)
con.commit()
except:
con.rollback()
logging.exception('Insert operation error')
raise
finally:
cur.close()
con.close()
批量插入
remit_ids = [('1234', 'CAD'), ('5678', 'HKD')]
con = mysql_api.connect_wxremit_db()
cur = con.cursor()
try:
cur.executemany("INSERT INTO t_order (Fremit_id, Fcur_type, Fcreate_time"
+ " VALUES (%s, %s, now())", new_items)
assert cur.rowcount == len(remit_ids), 'my error message'
con.commit()
except Exception as e:
con.rollback()
logging.exception('Insert operation error')
finally:
cur.close()
con.close()
更新
def update_refund_trans(self, remit_id):
con = mysql_api.connect_wxremit_db()
cur = con.cursor()
try:
sql_str = ("SELECT Fremit_id"
+ " FROM t_wxrefund_trans"
+ " WHERE Fremit_id='%s'" % remit_id
+ " FOR UPDATE")
logging.info(sql_str)
cur.execute(sql_str)
assert cur.rowcount == 1, 'Fatal error: The wx-refund record be deleted!'
sql_str = ("UPDATE t_wxrefund_trans"
+ " SET Fcheck_amount_flag=1"
+ ", Fmodify_time=now()"
+ " WHERE Fremit_id='%s'" % remit_id
logging.info(sql_str)
cur.execute(sql_str)
assert cur.rowcount == 1, 'The number of affected rows not equal to 1'
con.commit()
except:
con.rollback()
logging.exception('Update operation error')
raise
finally:
cur.close()
con.close()
PyMySQL已经相当成熟,和Python-MySQL一样,它在很多Linux发行版本中都是可选的安装组件。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Python
# 操作
# MySQL
# 对MySQL的操作
# python测试mysql写入性能完整实例
# python3.6连接MySQL和表的创建与删除实例代码
# python 3.6 +pyMysql 操作mysql数据库(实例讲解)
# Python如何实现MySQL实例初始化详解
# 在python3环境下的Django中使用MySQL数据库的实例
# Python操作使用MySQL数据库的实例代码
# Python实现Mysql数据库连接池实例详解
# python将字典内容存入mysql实例代码
# 都是
# 是一个
# 离线
# 希望能
# 较多
# 不支持
# 可选
# 它在
# 谢谢大家
# 第三方
# 来完成
# 而生
# 近两年
# 最棒
# 最老
# 主要有
# 而是要
# import
# host
# connect
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在局域网内绑定自建网站域名?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
如何撰写建站申请书?关键要点有哪些?
郑州企业网站制作公司,郑州招聘网站有哪些?
网站页面设计需要考虑到这些问题
Laravel Docker环境搭建教程_Laravel Sail使用指南
Internet Explorer官网直接进入 IE浏览器在线体验版网址
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
SQL查询语句优化的实用方法总结
香港网站服务器数量如何影响SEO优化效果?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
香港服务器网站卡顿?如何解决网络延迟与负载问题?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
HTML 中动态设置元素 name 属性的正确语法详解
高端智能建站公司优选:品牌定制与SEO优化一站式服务
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
如何在Windows 2008云服务器安全搭建网站?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
高端云建站费用究竟需要多少预算?
如何快速生成可下载的建站源码工具?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
如何在云主机上快速搭建多站点网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Android自定义listview布局实现上拉加载下拉刷新功能
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
jQuery中的100个技巧汇总
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
如何快速上传自定义模板至建站之星?
长沙企业网站制作哪家好,长沙水业集团官方网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何在不使用负向后查找的情况下匹配特定条件前的换行符
西安专业网站制作公司有哪些,陕西省建行官方网站?
Swift开发中switch语句值绑定模式
如何用狗爹虚拟主机快速搭建网站?
Laravel怎么为数据库表字段添加索引以优化查询
如何彻底卸载建站之星软件?
Bootstrap CSS布局之列表
Swift中switch语句区间和元组模式匹配

