使用 PySide6 和 MySQL 实现图书搜索功能

本教程将介绍如何使用 Python 的 PySide6 库和 MySQL 数据库构建一个简单的图书管理系统,实现图书搜索功能。我们将学习如何创建用户界面、连接数据库、执行查询并显示结果。

1. 导入必要的库

首先,我们需要导入必要的库。

import pymysql
import sys
from PySide6.QtCore import *
from PySide6.QtGui import *
from PySide6.QtWidgets import *

from QtUser import User_Dialog

2. 创建主窗口类

接下来,我们创建一个 Oper_Book_Window 类,继承自 QMainWindow 类,用于表示主窗口。

class Oper_Book_Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    # 初始化UI界面
    def initUI(self):
        # 设置窗口标题和大小
        self.setWindowTitle('图书操作界面')
        self.resize(400, 300)

        # 创建一个标签和一个文本框用于输入书名
        self.label_bookname = QLabel('输入书名:')
        self.edit_bookname = QLineEdit()

        # 创建一个按钮用于搜索
        self.btn_search = QPushButton('搜索')
        self.btn_search.clicked.connect(self.search_bookname)

        # 创建一个列表用于显示搜索结果
        self.list_book = QListWidget()

        # 创建一个垂直布局并将控件添加进去
        vbox = QVBoxLayout()
        vbox.addWidget(self.label_bookname)
        vbox.addWidget(self.edit_bookname)
        vbox.addWidget(self.btn_search)
        vbox.addWidget(self.list_book)

        # 创建一个QWidget窗口部件,并将垂直布局设置为其布局
        widget = QWidget()
        widget.setLayout(vbox)

        # 将QWidget窗口部件设置为中心窗口部件
        self.setCentralWidget(widget)

    # 搜索书名
    def search_bookname(self):
        # 获取输入的书名
        bookname = self.edit_bookname.text()

        # 连接数据库
        db = pymysql.connect('localhost', 'root', '123456', 'library')
        cursor = db.cursor()

        # 查询数据库
        sql = 'SELECT * FROM LBook WHERE 书名 = '%s'' % bookname
        try:
            cursor.execute(sql)
            results = cursor.fetchall()
            if results:
                # 如果找到了匹配的书名,则将结果添加到列表中
                self.list_book.clear()
                for row in results:
                    self.list_book.addItem(row[1])
            else:
                # 如果没有找到匹配的书名,则显示“无”
                self.list_book.clear()
                self.list_book.addItem('无')
        except:
            # 查询失败则提示错误信息
            QMessageBox.warning(self, 'Error', '查询失败')

3. 运行程序

最后,我们创建一个 if __name__ == '__main__': 块,用于运行程序。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Oper_Book_Window()
    window.show()
    sys.exit(app.exec_())

注意:

  • 确保你已经安装了 pymysqlPySide6 库。
  • 替换代码中的数据库连接信息为你的实际信息。
  • 确保你的数据库中存在名为 LBook 的表,并且包含名为 书名 的字段。

运行程序后,你将看到一个带有文本框和按钮的窗口,输入书名并点击“搜索”按钮,就可以在列表中显示搜索结果。

更多功能:

你可以根据需要添加更多功能,例如:

  • 添加图书
  • 删除图书
  • 修改图书信息
  • 显示所有图书
  • 分页显示结果
  • 等等。

希望本教程对你有帮助!

Python 图书管理系统:使用 PySide6 和 MySQL 实现图书搜索功能

原文地址: https://www.cveoy.top/t/topic/oNge 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录