【Python】Python高校图书馆书籍管理系统(登录、注册、功能源码设计)【独一无二】

简介: 【Python】Python高校图书馆书籍管理系统(登录、注册、功能源码设计)【独一无二】

1. 登录功能设计

用户的登录界面主要是采用不同的方式布局来完成,主要用到的布局方式有:水平布局、垂直布局、栅格布局等。

主要的布局代码如下:

def initUi(self):
        gLayout = QGridLayout(self)
        gLayout.setSpacing(8)
        gLayout.addWidget(self.title_area(), 0, 0)
        gLayout.addWidget(self.account_area(), 1, 0)
        gLayout.addWidget(self.button_area(), 3, 0)
        gLayout.addWidget(self.tips_area(), 2, 0)
        self.setLayout(gLayout)

1.1 登录校验

如果用户名输入错误,会提示当前用户名不存在。

用户的账号信息主要存储在本地的模拟数据库当中,每次登录是会与本地数据库做登录校验,如果符合要求,即可满足用户完成登录。

def login_event(self):
        # 输入用户名和密码
        username = self.user_name_textbox.text()
        password = self.pass_word_textbox.text()
        with open('user.txt', 'r') as f:
            users = f.readlines()
            for user in users:
                if user.split(',')[0] == username:
                    if user.strip().split(',')[1] == hashlib.md5(password.encode()).hexdigest():
                        self.hide()
                        self.sub_lib = library_win.Library()
                        self.lib = library_win.LibraryApp(self.sub_lib)
                        self.lib.show()
                        return
                    else:
                        QMessageBox.information(self, 'Error', "密码错误!", QMessageBox.Yes)
                        return
            else:
                QMessageBox.information(self, 'Error', "用户名不存在!", QMessageBox.Yes)

2. 注册界面设计

注册界面主要包含注册类型、用户名、密码、确认密码注册界面展现形式如下:

主要的布局代码如下:

def register_msg(self):
        group_box = QGroupBox('', self)
        hlayout = QFormLayout(group_box)
        hlayout.addRow(self.register_type, self.register_combox)
        hlayout.addRow(self.register_name, self.register_name_edit)
        hlayout.addRow(self.register_pass_word, self.register_pass_word_edit)
        hlayout.addRow(self.register_pass_word_again, self.register_pass_word_again_edit)
        hlayout.addRow(self.register_email, self.register_email_edit)
        return group_box

2.1 注册校验

界面中增加了用户名密码的复杂度设置,如果用户输入的用户名和密码不符合预期,那么会弹窗提示。

主要采用正则表达式输入的信息的合规性进行校验,校验部分代码如下:

def register_check(self):
        username = self.register_name_edit.text()
        password = self.register_pass_word_edit.text()
        password1 = self.register_pass_word_again_edit.text()
        # 使用正则表达式检查用户名和密码的规范性
        if not re.match(r'^[a-zA-Z]\w{4,19}$', username):
            QMessageBox.information(self, 'Error', "用户名不符合规范,由字母开头,由字母数字下划线组成,长度5-20", QMessageBox.Yes)
        elif not re.match(r'^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,16}$', password):
            QMessageBox.information(self, 'Error', "密码不符合规范,必须包含大写字母小写字母和数字,长度8-16", QMessageBox.Yes)
        elif password1 != password:
            QMessageBox.information(self, 'Error', "密码输入不一致!", QMessageBox.Yes)

如果用户通过校验,那么通过注册。


3. 图书馆管理功能

图书管管理界面,主要是对图书进行管理,主要包括的功能有添加书籍和删除书籍。书籍会存在本地的数据库中,下次登录是仍然会保留。

3.1 添加书籍

用户可以根据输入书名和作者以及书籍的ID来实现添加书籍,最后添加的书籍会显示在QTableWidget中。

主要代码如下:

def update_book_list(self):
        self.table_widget.setRowCount(0)
        for book in self.library.list_books():
            row_position = self.table_widget.rowCount()
            self.table_widget.insertRow(row_position)
            self.table_widget.setItem(row_position, 0, QTableWidgetItem(book[0]))
            self.table_widget.setItem(row_position, 1, QTableWidgetItem(book[1]))
            self.table_widget.setItem(row_position, 2, QTableWidgetItem(book[2]))

3.2 删除书籍

用户输入对应书籍的ID,书籍可以被被永久删除。

主要代码如下:

def remove_book(self):
        text, ok = QInputDialog.getText(self, '删除书籍', '请输入书籍ID:')
        if ok:
            removed = self.library.remove_book(text.strip())
            if removed:
                self.update_book_list()
相关文章
|
4天前
|
机器学习/深度学习 数据采集 存储
使用Python实现智能农业灌溉系统的深度学习模型
使用Python实现智能农业灌溉系统的深度学习模型
28 6
|
2天前
|
缓存 测试技术 数据安全/隐私保护
探索Python中的装饰器:简化代码,增强功能
【10月更文挑战第29天】本文通过深入浅出的方式,探讨了Python装饰器的概念、使用场景和实现方法。文章不仅介绍了装饰器的基本知识,还通过实例展示了如何利用装饰器优化代码结构,提高代码的可读性和重用性。适合初学者和有一定经验的开发者阅读,旨在帮助读者更好地理解和应用装饰器,提升编程效率。
|
9天前
|
开发者 Python
探索Python中的装饰器:简化代码,增强功能
【10月更文挑战第22天】在Python的世界里,装饰器是一个强大的工具,它能够让我们以简洁的方式修改函数的行为,增加额外的功能而不需要重写原有代码。本文将带你了解装饰器的基本概念,并通过实例展示如何一步步构建自己的装饰器,从而让你的代码更加高效、易于维护。
|
8天前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现智能生态系统监测与保护的深度学习模型
使用Python实现智能生态系统监测与保护的深度学习模型
30 4
|
10天前
|
开发框架 Python
探索Python中的装饰器:简化代码,增强功能
【10月更文挑战第20天】在编程的海洋中,简洁与强大是航行的双桨。Python的装饰器,这一高级特性,恰似海风助力,让代码更优雅、功能更强大。本文将带你领略装饰器的奥秘,从基础概念到实际应用,一步步深入其内涵与意义。
|
15天前
|
云计算 Python
用python给你写个简单的计算器功能网页啊
这张图片展示了阿里巴巴集团的组织架构图,涵盖了核心电商、云计算、数字媒体与娱乐、创新业务等主要板块,以及各板块下的具体业务单元和部门。
|
2天前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
8 0
|
11天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
6天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
11天前
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。