From 9e9ee7832ca5b691f1ba6ef26dba0cc88d07139e Mon Sep 17 00:00:00 2001 From: carry <2641257231@qq.com> Date: Mon, 10 Jul 2023 11:46:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 70 +++++++++++++++++- school system/__pycache__/app.cpython-310.pyc | Bin 6817 -> 0 bytes 2 files changed, 69 insertions(+), 1 deletion(-) delete mode 100644 school system/__pycache__/app.cpython-310.pyc diff --git a/README.md b/README.md index dd47a8b..89f6c8d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,71 @@ # gzhu_database_experiment3 +## 简介 +广州大学数据库原理课实验3的内容,使用模板引擎,flask框架和SQLAlchemy实现,可以拿来应付老师,网上有用C#实现的,mfc实现的,但我没有看到用python web实现的,我要添砖加瓦 +## 实验要求(word文档复制) +假设有“教师”、“学生”、“课程”三个实体,教师的基本信息包括:工号、姓名、职称、工资,课程的基本信息包括:课程号、课程名、学分数,学生的基本信息包括:学号、姓名、性别、年龄。系统必须满足以下要求: -广州大学数据库原理课实验3的内容,使用flask框架和orm实现,可以拿来应付老师 +(1) 一门课程只能有一个教师任课,一个教师可以上多门课程; + +(2) 一个学生可以选修多门课程,一门课程可以由多个学生来选修,记录不同学生选 +修不同课程的成绩; + +(3) 设置一个管理员,用于维护(添加、删除和修改等基本任务)学生基本信息、教师基本信息和教师所授课程等工作,此外,管理员添加学生时,为其设置初始密码;当学生选修了某门课程,课程成绩由管理员录入; + +(4) 学生可以利用学号和密码登录系统,登陆系统后,可以进行选课、修改密码和个人基本信息、查询自己的选课及总学分等操作; + +(5) 能够统计不同职称的教师的数量、不同职称的教师的平均工资,可以统计每门课程的平均成绩、最高分、最低分,统计每个学生选修课程的总学分; +## 使用方法 +### 建表(mysql为例) +在你的数据库上建表 +```sql +CREATE TABLE `student` ( + `pwd` varchar(20) NOT NULL, + `sno` varchar(10) NOT NULL, + `sname` varchar(20) NOT NULL, + `ssex` char(3) DEFAULT NULL, + `sage` smallint(6) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `course` ( + `cno` varchar(4) NOT NULL, + `cname` varchar(40) NOT NULL, + `ccredit` smallint(6) NOT NULL, + `tno` varchar(7) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `sc` ( + `sno` varchar(10) NOT NULL, + `cno` varchar(4) NOT NULL, + `grade` smallint(6) NOT NULL, + `tno` varchar(7) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `teacher` ( + `tno` varchar(7) NOT NULL, + `tname` varchar(20) NOT NULL, + `tposition` varchar(20) NOT NULL, + `tsalary` smallint(6) NOT NULL, + `pwd` varchar(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `admin` ( + `ano` varchar(10) NOT NULL, + `pwd` varchar(20) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +``` +### 安装依赖 +```shell +pip install flask +pip install flask_SQLAlchemy +``` +**可能有遗漏,可以根据报错进行pip安装** +### 修改连接地址 +```python +app.config['SQLALCHEMY_DATABASE_URI'] = "你的数据库url" +``` +### 运行 +```shell +flask run +``` +## 作者想说 +这玩意是我一天半写出来的,大二下学期太累了,赶完好几个ddl才轮到数据库的ddl,这个程序做得非常草率,甚至没有登录鉴权机制,纯靠跳转实现,拿来交作业可以,别深究 \ No newline at end of file diff --git a/school system/__pycache__/app.cpython-310.pyc b/school system/__pycache__/app.cpython-310.pyc deleted file mode 100644 index 91ab85e20c4807e36bd30ee5f85c89acee1ad3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6817 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