教你慢慢摸索着用Python连上MySQL数据库那些事儿
- 问答
- 2026-01-02 01:06:25
- 2
开始)
记得我刚开始学Python,想用它来操作数据库的时候,感觉这事儿特别神秘,又有点吓人,满屏幕的专业术语,什么“驱动”啊、“游标”啊,看得人头大,后来自己一点点摸爬滚打,才发现其实就那么几步,捅破了窗户纸就简单了,今天我就把我自己摸索的过程跟你说说,咱们不求快,就求能一步步走通。
你得有个MySQL数据库,这就像你想去朋友家玩,总得先知道他住在哪儿吧,你可以选择在自己电脑上安装一个MySQL,也可以直接用云服务商提供的,我一开始为了省事,用的是本地安装的,你得记下几个关键信息:数据库的地址(如果是本机,就是localhost或127.0.0.1)、端口号(通常是3306)、你的用户名(比如root)和密码,这些是待会儿Python去“敲门”的敲门砖。
光有Python还不行,它本身不会说MySQL的语言,所以我们需要一个“翻译官”,也就是数据库驱动,在Python里,这个“翻译官”通常是一个模块,最常用的就是PyMySQL和mysql-connector-python,这两个用哪个都行,功能差不多,我一开始用的是PyMySQL,因为觉得它安装简单,你只需要打开你的命令行(Windows叫CMD或者PowerShell,Mac叫终端),输入一行命令就能装上:pip install PyMySQL,看到提示安装成功,这第一步就算准备好了。
我们就要在Python脚本里写代码了,别怕,代码不多,咱们一句句看。
第一步,先把我们刚才装好的“翻译官”请进来,在Python文件的最开头,写上:import pymysql,这行代码的意思就是告诉Python:“喂,我接下来要用pymysql这个工具了,你帮我准备好。”
第二步,就是建立连接,这步最关键,就像拿起电话拨号,我们使用pymysql.connect()这个函数,括号里,我们需要把之前记下的那些“敲门砖”信息一个个告诉它。
代码如下:
connection = pymysql.connect(host='localhost', port=3306, user='root', password='你的密码', database='你要连的数据库名')
这里稍微解释一下:
host:数据库地址,本机就是'localhost'。port:端口号,默认是3306。user:你的用户名。password:你的密码,这是个关键信息,以后要是做真正的项目,可不能直接写死在代码里,要想办法藏起来。database:你要操作的具体是哪个数据库,MySQL里面可以创建很多个数据库,你得指定一个。
如果所有这些信息都对了,运行这行代码后,connection这个变量就代表了一个成功的数据库连接,要是不对,比如密码错了,它就会报错,告诉你连接失败,这时候你就要回去检查一下你的“敲门砖”信息对不对。
连接成功之后,我们并不能直接对数据库下命令,我们需要一个“操作员”,这个操作员在数据库里叫做“游标”(cursor),你可以把它想象成是你伸进数据库里的一只手,你去指挥这只手拿东西、放东西。
创建游标的代码很简单:cursor = connection.cursor()。
好了,手”也有了,我们就可以让它干活了,我们想看看某个表里有什么数据,就需要执行一条SQL查询语句,假设我们有一个叫users的表,我们想查看里面的所有数据。
SQL语句是这样写的:SELECT * FROM users,我们要让游标去执行这句话。
代码是:cursor.execute("SELECT * FROM users")
这句代码执行后,查询的命令已经发出去了,结果也暂时存在了游标里,我们怎么把结果拿出来看呢?这就需要“获取”结果,如果是查询多条数据,我们用:results = cursor.fetchall(),这个fetchall()会把所有查询到的结果都拿出来,变成一个由元组组成的列表,你可以用一个循环,比如for row in results: print(row),把每一行数据都打印出来看看。
除了查询,我们还可以执行增加(INSERT)、删除(DELETE)、修改(UPDATE)等操作,步骤都差不多,都是让游标去execute一条SQL语句,但这里有个非常重要的区别:对于会修改数据库内容的操作,你在执行完cursor.execute()之后,数据库并没有真正被修改!这就像你写了张修改条,但还没签字批准,这个“批准”的动作,叫做“提交”(commit),你需要再执行一句:connection.commit(),这样修改才会真正生效,这是个安全机制,防止你误操作,记住口诀:查完用fetch,改完要commit。
所有事情都做完了,别忘了关门送客,释放资源,这和开门一样重要,不然会占用数据库的连接数,关闭的顺序是先关游标,再关连接:cursor.close() connection.close()。
把上面所有这些步骤组合起来,就是一个完整的流程了,我一开始学的时候,就写了这么一个简单的脚本,反复运行,看看每步的效果,慢慢就理解了,你可能会遇到各种错误,比如连接失败、SQL语句写错了表名、或者忘了commit导致数据没存上,这都非常正常,别灰心,根据报错信息去排查,每一次错误都是学习的机会。
等你把这个基本流程玩熟了,就可以再去摸索一些更高级的用法,比如怎么安全地传递参数防止SQL注入(这很重要!),或者使用上下文管理器(with语句)来让代码更简洁,自动帮你关闭连接,但那些都是后话了,第一步,咱们先高高兴兴地把连接建立起来,成功查出来第一条数据,那就是最大的胜利!
结束)

本文由酒紫萱于2026-01-02发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/72776.html
