首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

教务管理系统分类记录.zip

行业研究 10.19KB 25 需要积分: 1
立即下载

资源介绍:

教务管理系统分类记录.zip
import logging import sys from PyQt6.QtWidgets import QWidget, QApplication, QMessageBox from PyQt6.QtCore import Qt, QCoreApplication, QTimer from ui.login import Ui_Form as LoginUiMixin from ui.home import Ui_Form as HomeUiMixin from lib import common from interface import common_interface, student_interface, teacher_interface, admin_interface from conf import settings _translate = QCoreApplication.translate test_logger = logging.getLogger('视图层') login_window = None login_name = None login_user_type = None class LoginWindow(LoginUiMixin, QWidget): def __init__(self): super(LoginWindow, self).__init__() self.setupUi(self) self.setWindowFlag(Qt.WindowType.FramelessWindowHint) # 隐藏边框 self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground) # 背景透明 self.admin_is_here = False # 默认没有管理员 self.login_window_init() self.open_login_page() self.home_window = None #创建学校功能 def add_school(self): # 1、 获取用户输入的数据 name = self.lineEdit_14.text().strip() addr = self.lineEdit_15.text().strip() # 2、判断 if not name or not addr: QMessageBox.warning(self, '警告', '学校货地址不能为空!') return # 3、 调用添加学校接口 flag, msg = admin_interface.add_school_interface( name, addr, login_name ) QMessageBox.warning(self, '提示', msg) # 4、如果学添加失败 if not flag: return # 5、学校添加成功, 进入主页 self.lineEdit_14.setText('') self.lineEdit_15.setText('') self.go_home() # 进入主页 def go_home(self): self.close() if self.home_window: return # 1、实例化一个窗口对象 self.home_window = HomeWindow() self.home_window.show() # 初始化登录接口 def login_window_init(self): self.lineEdit.setText(settings.LOGIN_USER) user_type_dic = { 'Student': self.checkBox, 'Teacher': self.checkBox_2, 'Admin': self.checkBox_3 } user_type_dic.get(settings.LOGIN_TYPE).setChecked(True) # 获取用户类型 def get_user_type(self): checkbox = self.checkBox.isChecked() checkbox2 = self.checkBox_2.isChecked() checkbox3 = self.checkBox_3.isChecked() user_type_dic = { 'Student': checkbox, 'Teacher': checkbox2, 'Admin': checkbox3 } for user_type in user_type_dic: # 如果通过key拿到得知是True, 就返回key if user_type_dic.get(user_type): return user_type # 登录功能 def login(self): test_logger.debug('登录') # # 1、获取用户名和密码, 以及用户类型 name = self.lineEdit.text().strip() pwd = self.lineEdit_2.text().strip() user_type = self.get_user_type() # 2、判断用户名和密码是否正确 if not name or not pwd: QMessageBox.warning(self, '警告', '用户名或密码不能为空!') return # 3、调用登录接口进行登录 pwd = common.pwd_to_sha256(pwd) flag, msg = common_interface.login_interface( name, pwd, user_type ) if not flag: QMessageBox.warning(self, '登录失败', 'msg') return # 4、登陆成功 settings.config.set('USER', 'LOGIN_USER', name) settings.config.set('USER', 'LOGIN_TYPE', user_type) with open(settings.CONFIG_PATH, 'w', encoding='utf-8-sig') as f: settings.config.write(f) # 5、记录用户名和用户类型 global login_name, login_user_type login_name = name login_user_type = user_type # 6、登录成功,判断是否有学校 flag, msg = common_interface.check_obj_is_here('School') if not flag: # 如果没有学校的时候, 是管理员登录,跳转到创建学校页面 if user_type == 'Admin': self.open_add_school_page() else: # 没有学校,也不是管理员登录 QMessageBox.warning(self, '警告', '当前不存在学校,请联系管理员添加学校!') return # 7、跳转到主页 self.go_home() # 注册功能 def register(self): test_logger.debug('注册') # 1、拿到用户名和密码 name = self.lineEdit_11.text().strip() pwd = self.lineEdit_12.text().strip() re_pwd = self.lineEdit_13.text().strip() # 2、进行简单的逻辑判断 # 2.2、 判断两次输入的密码是否一致 if pwd != re_pwd: QMessageBox.warning(self, '警告', '两次输入的密码不一致!') return import re # 2.3、 校验用户名是否合法 if not re.findall('[a-zA-Z]\w{2,9}', name): QMessageBox.warning(self, '警告', '用户名长度必须为3-10个字符!\n只能有字母、数字、下划线组成,并且只能以字母开头!') return # 2.4、校验密码强度 if not re.findall('^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{8,16}$', pwd): QMessageBox.warning(self, '警告', '\n密码太弱,必须包含大写字母、小写字母以及数字,并且长度必须为8-16位!') return # 3、做密码加密 pwd = common.pwd_to_sha256(pwd) # 4、调用注册接口进行注册 if self.admin_is_here: flag, msg = student_interface.student_register_interface( name, pwd ) else: flag, msg = admin_interface.admin_register_interface( name, pwd ) QMessageBox.about(self, '提示', msg) # 5、如果注册失败 if not flag: return # 6、跳转到登录页面 self.open_login_page() self.lineEdit_11.setText('') self.lineEdit_12.setText('') self.lineEdit_13.setText('') self.lineEdit.setText(name) self.lineEdit_2.setFocus() # 打开登录页面 def open_login_page(self): test_logger.debug('打开登录页面') self.stackedWidget.setCurrentIndex(0) self.lineEdit.setFocus() self.show() # 打开注册页面 def open_register_page(self): test_logger.debug('打开注册页面') self.stackedWidget.setCurrentIndex(1) self.lineEdit_11.setFocus() # 1、判断是否有管理员 flag, msg = common_interface.check_obj_is_here('Admin') # 2、如果管理员存在,则把注册页面的文字改成学员注册 if flag: self.label_6.setText('学员注册') self.admin_is_here = True # 打开创建学校页面 def open_add_school_page(self): self.lineEdit_14.setFocus() self.stackedWidget.setCurrentIndex(2) self.show() # 添加课程 def add_course(self): test_logger.debug('添加学校') # 保存课程 def save_course(self): test_logger.debug('保存课程') # 添加老师 def add_teacher(self): test_logger.debug('添加老师') # 保存老师 def save_teacher(self): test_logger.debug('保存老师') # # 添加学校 # def add_school(self): # test_logger.debug('添加学校') # # 关闭窗口功能 # # def close(self): # # self.close()

资源文件列表:

教务管理系统分类记录.zip 大约有4个文件
  1. 教务管理系统分类记录/
  2. 教务管理系统分类记录/home.py 13.57KB
  3. 教务管理系统分类记录/login.py 11.47KB
  4. 教务管理系统分类记录/register.py 7.56KB
0评论
提交 加载更多评论
其他资源 DesignExp03.zip
DesignExp03.zip
教材11-20章习题答案.zip
教材11-20章习题答案.zip
俄罗斯方块(9).zip
俄罗斯方块(9).zip
俄罗斯方块(9).zip
桥接模式标准示例代码与举例代码
桥接模式示例代码。 包括桥接模式的标准模式代码。 `Abstraction` 和 `RefinedAbstraction` 是抽象维度体系; `Iimplementor` 和 `ConcreteImplementorA` `ConcreteImplementorB` 是实现维度体系; `Abstraction` 作为桥梁,将抽象维度和实现维度进行了连接。 还有一个示例:快餐店。 众所周知,比较知名的洋快餐有:肯德基、麦当劳、汉堡王等等。 他们都属于快餐品牌。所以我们创建一个快餐店的抽象类:FastRestaurant。 然后让 KFCRestaurant、McRestraurant、继承FastRestaurant。 各个快餐店都有自己的薯条和可乐。
iA_Writer_7.1.3_MAS_TNT__xclient.info.zip
iA_Writer_7.1.3_MAS_TNT__xclient.info.zip
中国海洋大学机器学习完整课件ch1-ch16
中国海洋大学机器学习完整课件ch1-ch16
有趣的Verilog:会唱歌的蜂鸣器
有趣的Verilog:会唱歌的蜂鸣器
中国地质大学操作系统qt作业
中国地质大学操作系统qt作业
中国地质大学操作系统qt作业 中国地质大学操作系统qt作业 中国地质大学操作系统qt作业