![v2-23a56248e4148780e5a15b7f4ea77948_1440w.jpg?source=172ae18b](http://img-02.proxy.5ce.com/view/image?&type=2&guid=2c29f9f1-1930-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-23a56248e4148780e5a15b7f4ea77948_1440w.jpg?source=172ae18b)
如果小伙伴还不了解数据库可以先去快速学习下,也可以选择先跳过本章,后续章节阅读并不会受到影响。
PyQt5提供了一些数据库驱动以方便我们来连接不同的数据库:
![v2-52816a3a1e9ad54471860d82d1c6f5dc_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=2c29f9f1-1930-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-52816a3a1e9ad54471860d82d1c6f5dc_b.jpg)
本章笔者将会使用QSQLITE驱动和QMYSQL驱动来进行演示并讲解如何在PyQt5中进行数据库应用(连接和使用数据库操作其实都是类似的)。请读者确保已经安装并配置好MySQL数据库(SQLite数据库无需额外下载和配置,我们可直接在PyQt5中使用)。
26.1 数据库连接和关闭
在用到数据库的程序中,我们通常把数据库连接操作放在程序应用开始时(因为数据库无法连接的话,程序的功能就会收到影响了,所以要先确保数据库连接成功)。首先来看一下连接SQLite数据库:
import
1. 通过调用QSqlDatabase类的addDatabase()方法来创建一个数据库连接,因为要连接SQLite数据库,所以这里传入的是QSQLite参数;
2. 调用setDatabaseName()设置要使用的数据库名称,只需要写入一个路径,文件名以.db结尾即可(若该数据库已经存在,则使用该数据库;若不存在则会新建一个);
3. 调用open()方法打开数据库,若打开成功则返回True,失败则返回False。在这里我们用消息框来提示用户数据库打开失败,lastErrot().text()方法可以获取数据库打开失败的原因;
4. 在窗口关闭事件中通过self.db.close()方法来关闭数据库。
运行成功后我们会在当前目录下多出一个test.db的文件。
其他类型的数据库连接要多几行代码,这里以MySQL为例:
import
1. 要连接MySQL数据库那就要使用QMYSQL驱动;
2. 调用setHostName()方法设置主机名,因为是本地的,所以直接写localhost;
3. 调用setDatabaseName()设置要使用的数据库名称,请注意笔者之前已经在MySQL上新建了一个名为test_db的数据库,使用某数据库名前,请确保相应的数据库存在;