PyQt5 数据库操作详细教程
PyQt5 提供了丰富的数据库操作功能,使得在图形用户界面(GUI)应用程序中进行数据库连接和操作变得简单。本教程将详细介绍如何使用 PyQt5 连接和操作数据库,包括 SQLite、MySQL 等,并通过丰富的案例来展示如何实现这些功能。
QSqlDatabase:数据库连接类
QSqlDatabase 是 PyQt5 中用于管理数据库连接的类。它提供了创建、打开、关闭数据库连接的方法。
from PyQt5.QtSql import QSqlDatabase, QSqlQuerydef connect_to_database():# 创建数据库连接对象db = QSqlDatabase.addDatabase("QMYSQL")db.setHostName("localhost")db.setDatabaseName("mydatabase")db.setUserName("username")db.setPassword("password")# 打开数据库连接if db.open():print("数据库连接成功")else:print("数据库连接失败")
QSqlQuery:SQL查询类
QSqlQuery 是 PyQt5 中用于执行 SQL 语句的类。它提供了执行查询和处理结果的方法。
def execute_query():if not db.open():print("数据库未连接")returnquery = QSqlQuery()if query.exec_("SELECT * FROM mytable"):while query.next():print(query.value(0), query.value(1))else:print("查询执行失败")
QSqlRecord:SQL记录类
QSqlRecord 是 PyQt5 中用于表示 SQL 查询结果的一行的类。它提供了访问和修改记录字段的方法。
def process_record():if not db.open():print("数据库未连接")returnquery = QSqlQuery("SELECT * FROM mytable")if query.next():record = query.record()print(record.value("id"), record.value("name"))
QSqlTableModel/QSqlRelationalTableModel:数据模型类
QSqlTableModel 和 QSqlRelationalTableModel 是 PyQt5 中用于操作数据库表的类。它们提供了对数据库表进行增删改查操作的方法。
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView
from PyQt5.QtSql import QSqlTableModelclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('PyQt5 数据库操作示例')self.setGeometry(100, 100, 600, 400)# 创建数据模型self.model = QSqlTableModel(self)self.model.setTable("mytable")self.model.select()# 创建视图self.table_view = QTableView(self)self.table_view.setModel(self.model)self.setCentralWidget(self.table_view)if __name__ == '__main__':app = QApplication([])ex = MainWindow()ex.show()sys.exit(app.exec_())
总结
通过本教程,你已经学习了如何使用 PyQt5 连接和操作数据库,包括 SQLite、MySQL 等,并通过丰富的案例来展示如何实现这些功能。数据库操作是 GUI 应用程序中常见的需求,通过这些示例,你应该能够开始构建自己的数据库操作 PyQt5 应用程序。随着你对 PyQt5 的进一步学习和实践,你将能够创建出功能丰富、用户友好的图形界面应用程序。