Python 连接 MySQL 的方法多样,本文将详细介绍四种常见的连接方式,帮助开发者根据项目需求选择合适的工具。我们来看一下传统的 MySQL-python(MySQLdb)库。 1. **MySQL-python (MySQLdb)** MySQL-python,又称为 MySQLdb,是Python连接MySQL最古老的库之一,被许多框架所依赖。然而,它仅支持Python 2.x,且安装时需要满足一些前置条件,如安装`python-dev`和`libmysqlclient-dev`(在Ubuntu和Red Hat/CentOS系统中)。在Windows上安装通常比较麻烦,推荐使用其衍生版本替代。 使用示例: ```python import MySQLdb db = MySQLdb.connect(host="localhost", user="john", passwd="megajonhy", db="jonhydb") cur = db.cursor() cur.execute("SELECT * FROM YOUR_TABLE_NAME") for row in cur.fetchall(): print(row[0]) db.close() ``` 2. **mysqlclient** 由于MySQL-python的维护问题,mysqlclient应运而生,它是MySQL-python的Fork版,完全兼容MySQLdb,并且支持Python 3.x。对于使用原生SQL操作数据库的开发者,mysqlclient是一个不错的选择。安装方法与MySQLdb类似,Windows用户可以去https://www.lfd.uci.edu/~gohlke/pythonlibs/网站找到对应的whl包进行安装。 3. **PyMySQL** PyMySQL是一个纯Python实现的驱动,虽然在速度上略逊于MySQLdb,但其安装简单,无需复杂配置,同时也兼容MySQL-python。要兼容mysqldb,只需调用`pymysql.install_as_MySQLdb()`。 使用示例: ```python import pymysql conn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql') cur = conn.cursor() cur.execute("SELECT Host,User FROM user") for r in cur: print(r) cur.close() conn.close() ``` 4. **ORM框架:peewee** 面对写原生SQL的繁琐,ORM(Object-Relational Mapping)框架应运而生。Peewee是一个轻量级的ORM,提供了一种面向对象的方式来操作数据库,支持包括MySQL在内的多种数据库系统。使用ORM可以简化代码,提高开发效率,但可能牺牲一定的性能。 Peewee示例: ```python from peewee import MySQLDatabase, Model, CharField db = MySQLDatabase('mysql') class User(Model): username = CharField() class Meta: database = db # 连接到MySQL数据库 db.connect() db.create_table(User) # 创建User表 User.create(username='john') # 插入数据 users = User.select() # 查询所有用户 for user in users: print(user.username) ``` Python连接MySQL的方式多样,MySQL-python和mysqlclient适合需要原生SQL操作的场景,而PyMySQL则提供了更简单的安装体验。对于追求代码简洁性和跨数据库兼容性的开发者,ORM框架如peewee是一个很好的选择。在实际开发中,应根据项目需求、性能要求以及个人偏好来决定采用哪种方式连接MySQL。












- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- MFC编程基础1基于对话框Windows应用程序.doc
- 解析计算机通信与网络课程教学.docx
- 信息系统项目管理师考试笔记重点难点.doc
- 互联网思维与传统企业转型.ppt
- 初中数学幂的运算法则基础测试卷.doc
- 网络安全实验综合实验网络安全系统的设计与实现.doc
- ARM嵌入式软件开发.ppt
- 大数据及档案管理.ppt
- 互联网发展趋势报告V1.docx
- C语言程序设计方案报告.doc
- 连锁超市企业网站建设方案.doc
- 面向金融互联网容器服务化平台.pptx
- 大数据中心选址调研研究报告.doc
- 浅析血站档案管理信息化建设.docx
- 省级城乡规划行业统计空间数据库建设探讨.docx
- 单片机的温湿检测控制系统设计.doc


