说在前面
在实际研发中,大多数应用基本离不开数据库的数据存储支持的,数据库也有很多,如 MySQL、SQL Server、Orcale等数据库,每个数据库都比较强大,企业会根据自身实际选择对应的数据库。MySQL 在开发中算是普遍使用的一种数据库,得到了很多企业和开发者的喜爱。
在 Python 开发中,如何连接数据库呢?今天就讲讲在 Python 开发中如何连接 MySQL 数据库。
安装 PyMySQL
PyMySQL 是 Python 开发语言用于连接 MySQL 数据库的客户端 SDK,目前最新版本是 pypmysql-0.9.3 ,基于 PEP 249 的 Python 数据库API规范。PEP 249 可以理解为 Python 社区的一个版本,PEP (Python Enhancement Proposals) Python 增强改进建议。
以管理员权限打开 cmd 命令窗口,输入 pip install pymysql 开始安装,如图,表示安装完成。
在 PyCharm 中查看是否安装完成,如图,可以看到刚才安装的 PyMySQL 在解释器里显示出来了,表示 PyMySQL 安装完成。
执行 “ pip install pymysql”命令安装成功后,安装的位置在哪里呢?
在 cmd 中执行 pip 命令需要配置 Python 环境变量,所以在 cmd 执行的 pip 安装的库可以到 Python 安装目录下查看,具体位置 "F:\Python\Python38\Lib\site-packages",可根据你 Python 安装位置在 site-packages 文件夹下查看你安装的所有资源库。
使用 PyMySQL
安装完成后使用 import 语句导入 pymysql 包
import pymysql
创建数据连接,这里参数配置根据你数据库具体情况进行配置
# 连接数据库connection = pymysql.connect(host='localhost', user='root', password='123456', db='py_db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
创建一张 “tb_user”表。先检查 tb_user 表是否存在,存在即 DROP ,删除数据库表和表中的数据。
# 如果存在 tb_user 表,则删除 cursor.execute("DROP TABLE IF EXISTS `tb_user`") sql = "CREATE TABLE tb_user(" \ "id int auto_increment primary key," \ "user_name varchar(50)," \ "user_pass varchar(50))" cursor.execute(sql) # 提交 connection.commit()
向 tb_user 表中插入一条数据。注意,插入一条数据后要记得 commit()。
# 插入一条数据sql = "INSERT INTO `tb_user` (`user_name`, `user_pass`) VALUES (%s, %s)"cursor.execute(sql, ('python', '0011000'))
# 提交数据connection.commit()
读取刚才插入的数据。
# 读数据sql = "SELECT `id`, `user_name` , `user_pass` FROM `tb_user` WHERE `user_pass`=%s"cursor.execute(sql, ('0011000',))result = cursor.fetchone()print(result)print(faker.name())
运行输出结果
在这过程中,有三点值得注意
1、connection.cursor() as cursor 是什么意思呢?Cursor 数据库游标,这里是在创建一个数据库游标,Cursor 就好比是客户端和数据库之间的一辆卡车,当客户端需要运送数据到数据库或向数据库获取数据时,在客户端和数据库之间相互传送。
2、SQL 语句的标点符号一定要对,不然会抛异常,运行不出结果。
如 “INSERT INTO `tb_user` (`user_name`, `user_pass`) VALUES (%s, %s)”,`tb_user` 标点符号是 ` 而不是 ' ,这里很容易出错,我最开始也在这里出错了。
3、运行完毕后记得 close,数据库连接数资源是比较宝贵的,你用了一直不 close 掉,会一直占用得不到释放。
整个过程流畅,代码清洁,看着赏心悦目。这就是 Python 的精彩,还记得 Java 连接数据库吧,好麻烦的流程,反正作者是越来越喜欢 Python 了。
感谢你的阅读,希望对你有所启发或帮助!
领取专属 10元无门槛券
私享最新 技术干货