Python GUI教程:在PyQt5中使用数据库

一、PyQt5:数据库操作简介 

# 导入QtSql
from PyQt5 import QtSql

QtSQL模块中包含了很多个类,这些类归总起来主要包含三大部分:

  • 驱动层,用于提供特定数据库与SQL API接口之间的低级连接功能;其中包括QSqlDriver、QSqlDriverCreatorBase、QSqlResult;
  • SQL API层,用于提供对数据库的访问。通常来说,我们会使用QSqlDatabase建立数据库连接,使用QSqlQuery等类实现数据库的交互(执行SQL语句)。此外还有QSqlError、QSqlField、QSqlIndex、QSqlRecord等类。
  • 用户界面操作层,用于将数据库操作的数据链接到PyQt相应的数据小部件,将数据和操作展示在Qt界面中。这些类包括:QSqlQueryModel、QSqlTableModel等。

在这些类中,每个类都有自己特定的用途,其中:

  • QSQL:包含整个Qt SQL模块中使用的各种标识符
  • QSqlDatabase:处理与数据库的连接
  • QSqlDriver:用于访问特定SQL数据库的抽象基类
  • QSqlDriverCreator:模板类,为特定驱动程序类型提供SQL驱动程序工厂
  • QSqlDriverCreatorBase:SQL驱动程序工厂的基类
  • QSqlError:SQL数据库错误信息
  • QSqlField:处理SQL数据库表和视图中的字段
  • QSqlIndex:用于操作和描述数据库索引的函数
  • QSqlQuery:执行和操作SQL语句的方法
  • QSqlQueryModel:SQL结果集的只读数据模型
  • QSqlRecord:封装数据库记录
  • QSqlRelationalTableModel:具有外键支持的单个数据库表的可编辑数据模型
  • QSqlResult:用于从特定SQL数据库访问数据的抽象接口
  • QSqlTableModel:单个数据库表的可编辑数据模型

在实际的PyQt编程中,我们很少使用驱动层的类,多通过API层的来建立数据库连接、进行数据库查询等,然后通过用户界面操作层的类将数据结果显示在图形界面中。下面我们就来简单使用一下。

二、创建PyQt5中包含的数据库驱动程序

2.1、创建UI界面

# coding:utf-8
 
from PyQt5 import QtGui,QtCore,QtWidgets,QtSql
import sys
 
'''
    在PyQt5中使用数据库
'''
 
class MainUi(QtWidgets.QMainWindow):
 
    def __init__(self):
        super().__init__()
        self.initUi()
 
    # 初始化UI界面
    def initUi(self):
        # 设置窗口标题
        self.setWindowTitle("在PyQt5中使用数据库")
        # 设置窗口大小
        self.resize(600,400)
 
        # 创建一个窗口部件
        self.widget = QtWidgets.QWidget()
        # 创建一个网格布局
        self.grid_layout = QtWidgets.QGridLayout()
        # 设置窗口部件的布局为网格布局
        self.widget.setLayout(self.grid_layout)
 
        # 创建一个按钮组
        self.group_box = QtWidgets.QGroupBox('数据库按钮')
        self.group_box_layout = QtWidgets.QVBoxLayout()
        self.group_box.setLayout(self.group_box_layout)
        # 创建一个表格部件
        self.table_widget = QtWidgets.QTableView()
        # 将上述两个部件添加到网格布局中
        self.grid_layout.addWidget(self.group_box,0,0)
        self.grid_layout.addWidget(self.table_widget,0,1)
 
        # 创建按钮组的按钮
        self.b_create_db = QtWidgets.QPushButton("创建数据库")
        self.b_create_db.clicked.connect(self.create_db)
      
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值