https://github.com/JiaWei-Chen-2295/student_manager_with-gui
- python 3.8.1
- PyCharm 2024.1
- 库详见本目录下的 requirements.txt
-
首先确保你的 python 版本为 3.8.x 否则项目无法正常运行
-
使用以下命令安装 requirements.txt 中的库
pip install -r requirements.txt
-
安装 mysql 数据库(云端已有请忽略)
-
按照文档下方的建表语句进行建表
-
如果你的项目根目录下无 test_config 目录请自行添加,并在目录中新建 DBconnInfo.yml ,格式如下
host: mysql服务器地址(127.0.0,1) port: 3306 username: username database: databasename password: password
-
运行 NewStar/start/main.py
-
如果没有反应,请尝试浏览器地址栏输入 新建标签页
-
登录账号密码
账号:admin 密码:adminPass
-
登录成功后浏览器不会关闭,但会弹出主界面窗口,请留意状态栏
- 实现基本的用户管理,并具有强的可拓展性。
- 使用 MySQL 存储专业,班级,学生,用户的信息。
- 提供对数据库不同表进行操作的模块的包。
- 用户具有角色属性(管理员,辅导员,学生),不同的角色有不同的权限。
- 使用 nicegui 库,将 python 代码变为前端展示。
- 使用 pyqt5 展示主界面
-
内容:
- 专业表(专业唯一id,专业名字)
- 班级表(班级唯一id,班级名称,所属专业)
- 学生表(学生唯一id(学号),学生名字,学生身份证号(唯一性),所属班级)
- 用户表(用户唯一id,用户名,密码,角色(只能为:admin,class_manager,student),班级id,学生id(可空))
-
建表语句
CREATE TABLE Majors ( major_id INT AUTO_INCREMENT PRIMARY KEY, -- 专业唯一ID major_name VARCHAR(255) NOT NULL -- 专业名字 ); CREATE TABLE Classes ( class_id INT AUTO_INCREMENT PRIMARY KEY, -- 班级唯一ID class_name VARCHAR(255) NOT NULL, -- 班级名称 major_id INT, FOREIGN KEY (major_id) REFERENCES Majors(major_id) -- 所属专业(外键) ); CREATE TABLE Students ( student_id INT AUTO_INCREMENT PRIMARY KEY, -- 学生唯一ID(学号) student_name VARCHAR(255) NOT NULL, -- 学生名字 student_card_num VARCHAR(18) UNIQUE NOT NULL, -- 学生身份证号(唯一性) class_id INT, FOREIGN KEY (class_id) REFERENCES Classes(class_id) -- 所属班级(外键) ); CREATE TABLE Users ( user_id INT AUTO_INCREMENT PRIMARY KEY, -- 用户唯一ID username VARCHAR(255) NOT NULL, -- 用户名 password VARCHAR(255) NOT NULL, -- 密码 role ENUM('admin', 'class_manager', 'student') NOT NULL, -- 角色(只能为:admin,class_manager,student) class_id INT, student_id INT, FOREIGN KEY (class_id) REFERENCES Classes(class_id), -- 班级ID(外键) FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE SET NULL -- 学生ID(外键,可空) );
- 专业类(Major)
- 班级类(SchooClass)
- 学生类(Student)
- 数据库连接基类(BaseDao)
- 专业数据库操作类(MajorDao)
- 班级数据库操作类(SchoolClassDao)
- 学生数据库操作类(StudentDao)
- 用户类(User)
- 陈佳玮@2023154202
- 范宏泰@2023154208