【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()
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
51 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
1月前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习果蔬识别系统实现
本项目基于Python和TensorFlow,使用ResNet卷积神经网络模型,对12种常见果蔬(如土豆、苹果等)的图像数据集进行训练,构建了一个高精度的果蔬识别系统。系统通过Django框架搭建Web端可视化界面,用户可上传图片并自动识别果蔬种类。该项目旨在提高农业生产效率,广泛应用于食品安全、智能农业等领域。CNN凭借其强大的特征提取能力,在图像分类任务中表现出色,为实现高效的自动化果蔬识别提供了技术支持。
基于Python深度学习果蔬识别系统实现
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
135 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
人工智能 数据挖掘 开发者
探索Python编程之美:从基础到进阶
本文是一篇深入浅出的Python编程指南,旨在帮助初学者理解Python编程的核心概念,并引导他们逐步掌握更高级的技术。文章不仅涵盖了Python的基础语法,还深入探讨了面向对象编程、函数式编程等高级主题。通过丰富的代码示例和实践项目,读者将能够巩固所学知识,提升编程技能。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上Python编程的美妙旅程吧!

热门文章

最新文章

推荐镜像

更多