PyQt5 数据库操作详细教程

PyQt5 数据库操作详细教程

PyQt5 提供了丰富的数据库操作功能,使得在图形用户界面(GUI)应用程序中进行数据库连接和操作变得简单。本教程将详细介绍如何使用 PyQt5 连接和操作数据库,包括 SQLite、MySQL 等,并通过丰富的案例来展示如何实现这些功能。

QSqlDatabase:数据库连接类

QSqlDatabase 是 PyQt5 中用于管理数据库连接的类。它提供了创建、打开、关闭数据库连接的方法。

from PyQt5.QtSql import QSqlDatabase, QSqlQuery

def 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("数据库未连接")
        return
    
    query = 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("数据库未连接")
        return
    
    query = 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 QSqlTableModel

class 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 的进一步学习和实践,你将能够创建出功能丰富、用户友好的图形界面应用程序。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值