👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术
Python】Python高校图书馆书籍管理系统(登录、注册、功能源码设计)【独一无二】
本文是基于PyQT5开发的一款Python高校图书馆书籍管理系统,源码可以关注公众号,后台回复:
高校图书馆管理系统
获取。
文章目录
- Python】Python高校图书馆书籍管理系统(登录、注册、功能源码设计)【独一无二】
- 1. 登录功能设计
- 1.1 登录校验
- 2. 注册界面设计
- 2.1 注册校验
- 3. 图书馆管理功能
- 3.1 添加书籍
- 3.2 删除书籍
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()
👇源码可以关注公众号,后台回复:
高校图书馆管理系统
获取👇。