【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()
相关文章
|
5天前
|
存储 文件存储 Python
Python基础 --- 实现学生管理系统(Python 文件版本)
Python基础 --- 实现学生管理系统(Python 文件版本)
22 4
|
6天前
|
存储 缓存 API
python源码解读_python代码解释
python源码解读_python代码解释
|
9天前
|
Python
10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_有趣的python代码表白
10个Python绘画表白代码【内附源码,再不收藏你只能单身了】_有趣的python代码表白
|
9天前
|
数据安全/隐私保护 Python 算法
Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码,2024年最新Python面试回忆录
Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码,2024年最新Python面试回忆录
|
11天前
|
前端开发 Java 测试技术
selenium+python自动化测试--登录
selenium+python自动化测试--登录
17 2
|
11天前
|
前端开发 UED Python
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
|
11天前
|
IDE Java 开发工具
讨论 Python 中泛型(或类似泛型的功能)的优点和缺点
【5月更文挑战第8天】Python虽无显式泛型系统,但可通过类型注解和工具实现类似功能。优点包括提升代码可读性、静态类型检查、更好的IDE支持、灵活性和可逐渐引入。缺点涉及运行时性能开销、学习成本、非强制性及与旧代码集成问题。适当使用工具和实践可管理这些挑战。
23 2
|
11天前
|
弹性计算 运维 Shell
设置Python 支持自动命令补齐功能
【4月更文挑战第29天】
11 0
|
11天前
|
弹性计算 运维 Shell
设置 Python 支持自动命令补齐功能
【4月更文挑战第29天】
8 1
|
11天前
|
缓存 监控 Python
Python中的装饰器:一种强大的功能增强工具
装饰器是Python中一个独特且强大的功能,它允许在不修改原有函数或类代码的情况下,为其添加额外的功能或行为。本文将深入探讨Python装饰器的原理、用法以及在实际开发中的应用场景,帮助读者更好地理解和应用这一技术。