搭建简单的Web学生成绩管理系统项目 (python+flask+html+css+mysql)

项目概述

技术栈 (python+mysql+html+css+flask框架)
此系统后端采用python以及flask框架,数据库使用Mysql,前端利用HTML+CSS美化。

具体实现的基本功能

已完成的功能已经实现对mysql数据库中数据的增删改查。已完成的功能所需数据全部来自mysql数据库,具体已经实现的功能如下:

1: 管理员登陆(通过正则限制登陆的输入.防止SQL注入)
2: 管理员注册,修改,删除和数据展示
3: 学生信息添加和数据展示
4: 学生选课信息添加和数据展示
5: 学生成绩信息单次添加和从csv文件进行批量数据导入和数据展示
6: 学生成绩按姓名/学号/课程号/所属班级 不同选择查询并展示数据,并导出数据到csv文件
7: 退出系统

系统背景分析与说明
学生成绩管理系统背景分析:

学生的成绩管理涉及学生信息、系统管理员信息、学生选课信息、学生成绩等多种数据管理。从管理的角度可将系统功能分为五类:学生信息录入、选课信息录入、成绩信息录入。学生成绩查询,系统管理员变动。其中学生成绩查询包括按学号进行查询,按姓名进行查询,按班级进行查询,按课程号进行查询,系统管理员变动包括系统管理员的增加,修改和删除。

学生成绩管理系统管理人员权限说明:

本系统实现对学生信息、系统管理员信息、学生选课信息、学生成绩多种信息的管理和信息查看及维护。由于信息录入和查询功能一般是由管理员进行的,故本项目简化的将管理员设置为登陆成功后可以执行系统中的所有操作。

数据库设计
系统模块组成简单示意图:
在这里插入图片描述

系统E-R图:
在这里插入图片描述

E-R图转换后的关系模式:(斜体为主键)

学生信息(学号,班级,姓名)
学生选课(学号,课程号,教师工号)
学生成绩(学号,课程号,成绩)
管理员(管理员编号,用户名,密码)

数据表的设计与展示:(共有4个数据表)

表1
students_infos 学生信息表(是students_decision_infos表的主表)
在这里插入图片描述

表2
students_decision_infos学生选课信息表(设置了外键,作为从表)
在这里插入图片描述

表3
grade_infos 学生成绩信息表
在这里插入图片描述

表4
admins 管理员信息表(用于管理员登陆验证)
在这里插入图片描述

前后端设计(包含效果图及代码截图):

1:登陆界面(为了防止SQL注入,设置了正则表达式限制输入)

Web前端通过点击表单按钮发送POST请求的方式,提交FORM表单至Flask后台,后台获取表单数据后先通过正则表达式验证输入是否符合要求,不符合要求则提示非法输入,符合要求则验证管理员数据库中是否存在此用户,存在则登陆成功跳转页面,否则提示用户名或密码错误。

Web前端代码:(由于css代码过多,只截图部分html核心代码)
在这里插入图片描述

Flask后端中对应的登录路由:(正则表达式验证用户输入,防止SQL注入)
在这里插入图片描述

正常登陆显示时:
在这里插入图片描述

输入不符合要求时:(即用户名输入不是全字母,密码输入不是字母和数字的组合时):
在这里插入图片描述

当输入符合要求但是登陆管理员在管理员数据表中不存在时:
在这里插入图片描述

故只有当输入符合要求和登陆的管理员在数据表中存在时,才会跳转页面登陆成功。

2:学生信息录入

与用户登录的逻辑与编码类似,也是通过点击表单按钮发送POST请求的方式提交FORM表单至后端,后端获取数据,再添加学生信息至数据库中。每当点击表单中的提交按钮提交产生POST请求时,会实时读取学生信息数据表中的信息并实时展示在页面上。

Web前端:(由于css代码过多,只截图部分html核心代码)
在这里插入图片描述
在这里插入图片描述

Flask后端中对应的注册路由:
在这里插入图片描述

正常未进行操作时的页面显示效果:
在这里插入图片描述

当插入学生信息数据成功时(如下,以插入other学生为例)
在这里插入图片描述

图 2,3学生信息录入
当学生数据由于主键唯一性约束而插入失败时:
在这里插入图片描述

3:选课信息录入
通过点击表单按钮发送POST请求方式将FORM表单数据传递至后端,后端获取数据,再添加学生信息至数据库中。每当点击表单中的提交按钮提交产生POST请求时,会实时读取选课信息数据表中的信息并实时展示在页面上。

Web前端:(由于css代码过多,只截图部分html核心代码)
在这里插入图片描述

Flask后端中对应的注册路由:
在这里插入图片描述

当成功插入一个选课信息时:
在这里插入图片描述

当选课信息由于外键约束插入失败时:
在这里插入图片描述

4:成绩信息录入
通过点击表单按钮发送POST请求方式将FORM表单数据传递至后端,后端获取数据,再添加学生信息至数据库中。每当点击表单中的提交按钮提交产生POST请求时,会实时读取选课信息数据表中的信息并实时展示在页面上。

Web前端:(由于css代码过多,只截图部分html核心代码)
在这里插入图片描述

Flask后端中对应的注册路由:
在这里插入图片描述

当成功插入一条学生成绩信息时:
在这里插入图片描述

当学生成绩信息由于外键约束而插入失败时:
在这里插入图片描述

从csv文件读取信息进行批量数据导入:
在这里插入图片描述

5:学生成绩查询
通过点击表单按钮发送POST请求的方式,将前端form表单选择的信息和下拉框的选择的信息等传递至flask后台,执行不同条件下的查询操作,并显示操作的结果,并返回学生成绩数据表中的数据进行实时数据展示。

Web前端:(由于css代码过多,只截图部分html核心代码)
在这里插入图片描述

Flask后端中对应的注册路由:
在这里插入图片描述

按学号查询成绩:
在这里插入图片描述

按姓名查询成绩:
在这里插入图片描述

按课程号查询成绩:
在这里插入图片描述

按所在班级查询成绩
在这里插入图片描述

前端导出相应数据到csv文件:
在这里插入图片描述
在这里插入图片描述

6:系统管理员人员变动

同样通过点击表单按钮发送POST请求的方式,将前端form表单选择的信息和下拉框的选择等数据信息传递至flask后台,根据不同的逻辑条件执行不同的操作并返回操作的结果,并读取管理员数据表中的数据进行实时数据展示。

Web前端:(由于css代码过多,只截图部分html核心代码)
在这里插入图片描述

Flask后端中对应的注册路由:

在这里插入图片描述
增加系统管理员:
在这里插入图片描述
删除系统管理员:
在这里插入图片描述
修改管理员密码前的情况:(将管理员carson的密码改成abc123)
在这里插入图片描述

修改管理员密码成功后的情况:(将管理员carson的密码改成abc123)

在这里插入图片描述

当输入不符合后端设置要求时,操作失败。(后台设置了正则限制输入)


欢迎各位关注个人wx公众号,回复"python"获取项目源码和项目咨询!
在这里插入图片描述

  • 53
    点赞
  • 336
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
Python+MySQL+Flask 是一种常见的 Web 开发技术栈,它们分别是 Python 编程语言、MySQL 数据库Flask Web 框架。 Python 是一种高级编程语言,具有简单易学、强大灵活、可扩展性好等优点,因此在 Web 开发领域得到了广泛应用。MySQL 是一种常见的关系型数据库,具有高可靠性、高性能、易于管理等特点,因此也广泛应用于 Web 开发中。Flask一个基于 Python 的轻量级 Web 框架,它具有易于学习、灵活、可扩展性好等优点,因此被广泛应用于 Web 开发中。 Python+MySQL+Flask 的工作流程一般如下: 1. 使用 Python 连接 MySQL 数据库,执行 SQL 语句进行数据库操作; 2. 使用 Flask 构建 Web 应用程序,将 Python 代码和 HTMLCSS、JavaScript 等前端代码结合起来,实现 Web 功能; 3. 将 Flask 应用程序部署到服务器上,使其可以被外部用户访问。 具体的操作流程如下: 1. 安装 PythonMySQL,使用 PythonMySQL 连接库连接到 MySQL 数据库; 2. 创建 Flask 应用程序,设置路由、视图函数、模板等; 3. 在视图函数中进行数据库操作,将结果渲染到模板中返回给用户; 4. 部署 Flask 应用程序到服务器上,使用 Web 服务器(如 Nginx)进行反向代理和负载均衡,使其可以被外部用户访问。 总的来说,Python+MySQL+Flask 是一种简单易用、高效可靠的 Web 开发技术栈。它们的优点在于 Python 语言的简单易学、MySQL 数据库的高可靠性和高性能、Flask 框架的灵活和可扩展性。如果你想学习 Web 开发,这个技术栈是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值