首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一起来学习MySQL和Python

简介

对于任何功能完整的可部署应用程序,数据的持久性是必不可少的。存储数据的一种简单方法是将其写入硬盘中的文件,但是出于显而易见的原因,我们更愿意将特定于应用程序的数据写入数据库。Python为将数据写入广泛的数据库提供了语言支持。

Python 数据库 API

Python对数据库编程的核心支持是Python DB API (PEP - 249),它不依赖于任何特定的数据库引擎。正确的实现方式是导入Python DB API并在程序中使用,这取决于我们在持久层使用的数据库。在本教程中,我们将演示如何使用Python连接MySQL数据库并使用它执行事务。为此,我们将使用MySQLdbPython包。

在使用Python连接数据库之前,我们需要为Python安装MySQL连接器。这可以通过两种方式实现:

一种方法是从MySQL官方网站直接下载相关操作系统和相关位版本的安装程序。

另一种方法是使用pip来安装它

如果本地机器上安装了特定的MySQL版本,那么你可能需要一个特定的MySQL 连接器版本,这样就不会出现兼容性问题,我们可以使用以下命令:

最后,我们需要安装MySQL客户端模块,使我们能够从我们的Python应用程序中连接到MySQL数据库,它将作为客户端:

连接数据库

安装好连接器之后,在执行Python文件时,import MySQLdb语句应该不会抛出任何错误了。

先决条件

:本文假定读者对数据库概念有基本的理解,并对MySQL数据库有明确的了解,同时具有结构化查询语言(SQL)的相关知识。但是,本节还是解释了创建数据库和用户的基本过程。遵循以下步骤:

确保MySQL服务器正在运行。这可以通过MySQL 工作台 ->服务器状态进行检查。

打开MySQL工作台或MySQL 命令行。创建一个新数据库,将其命名为pythondb。

创建一个新用户pythonuser,密码为pythonpwd123,并授予对pythondb的访问权限。

检查到pythondb的连接

下面是一个简单的脚本,可用于以编程方式测试到新创建数据库的连接:

上面显示的版本号只是一个简单的数字。它应该匹配已安装MySQL服务器的版本。

我们再来仔细看看上面的示例程序,来了解它是如何工作的。首先,import MySQLdb用于导入所需的python模块。

MySQLdb.connect()方法使用主机名、用户名、密码和数据库名创建一个数据库连接。成功连接数据库后,它将返回一个连接对象(在这里以dbconnect引用它)。

通过使用连接对象,我们可以在关闭连接之前执行查询、提交事务和回滚事务。

在获得连接对象之后,我们需要获得一个MySQLCursor对象,以便使用execute方法执行查询。可以使用fetchall、fetchone或fetchmany方法检索事务的结果集,本教程后面将讨论这些方法。

除了执execute方法之外,还有三个与数据库事务相关的重要方法。现在我们将简要了解这些方法。

dbconnect.commit()方法通知数据库,在调用此函数之前执行的更改将完成,如果事务成功,则无法回滚到以前状态。

有时,如果发生事务失败,我们需要将数据库更改为失败发生之前的状态,这样数据就不会丢失或损坏。在这种情况下,我们需要使用dbconnect.rollback()将数据库回滚到以前的状态。

最后,使用dbconnect.close()方法关闭到数据库的连接。要执行进一步的事务,我们需要创建一个新连接。

新建一个表

一旦成功地建立了与pythondb的连接,我们就可以开始下一步了。让我们在其中创建一个新表:

执行上述脚本之后,你应该能看到一个为名为pythondb的库创建的名为movie的新表。可以使用MySQL 工作台来查看。

执行CRUD操作

现在,我们将通过Python脚本在新创建的数据库表中执行一些插入、读取、修改和删除操作。

创建一条新记录

下面的脚本演示了如何使用Python脚本将一条新记录插入MySQL数据库:

从表中读取行

在数据库中插入一个新行之后,可以使用游标对象以三种方式来获取数据:

cursor.fetchall()-可用于获取所有行

cursor.fetchmany()-可用于获取选定的行

cursor.fetchone()-只能用于从结果集中获取第一行

为了简单起见,我们将使用“select all”SQL查询,并在fetchall方法的结果集上使用for循环来打印单个记录

更新行

现在让我们把“Bruce Almighty”的类型从Comedy改为Staire:

删除记录

下面是一个Python脚本,演示了如何删除一个数据库行:

结论

在本文中,我们学习了如何使用Python DB API来连接到数据库。具体来说,我们了解了如何使用Python DB API的MySQLdb实现来建立到MySQL数据库的连接。我们还学习了如何使用数据库来执行事务。

英文原文:https://stackabuse.com/getting-started-with-mysql-and-python/

译者:一瞬

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190130A060U500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券