python flask学生管理系统
预览






前端
jquery
css
html
bootstrap: 4.x
后端
python: 3.6.x
flask: 2.0.x
数据库
mysql: 5.7
学生管理模块
- 登录、退出
- 查看个人信息、修改个人信息
- 成绩查询
- 查看已选课程
- 选课、取消选课
- 搜索课程
- 课程列表分页功能
教师模块
- 登录、退出
- 查看个人信息、修改个人信息
- 录入学生成绩
- 导出学生成绩到excel
- 查看已开设课程、设置课程容量
- 添加开设课程、删除已开设课程
- 搜索学生、搜索课程
管理员模块
- 登录、退出
- 删除、添加学生和教师
- 取消学生已选课程,取消教师已开设课程
- 修改学生、教师信息
- 搜索学生和教师
- 修改学生或教师密码
- 修改已有学院信息,删除学院,添加学院
- 修改已有专业信息,删除专业,添加专业
- 修改已有课程信息,删除课程,添加课程
目录结构
├─ app
│ ├─ forms.py
│ ├─ models.py 后端模型层,用于定义数据库模型和处理模块
│ ├─ static 前端静态文件目录
│ │ ├─ css css文件
│ │ │ ├─ base.css 初始化样式
│ │ │ ├─ bootstrap-select.css bootstrap-select插件文件
│ │ │ ├─ bootstrap-select.css.map bootstrap-select插件文件
│ │ │ ├─ bootstrap.css bootstrap文件
│ │ │ ├─ bootstrap.css.map bootstrap文件
│ │ │ └─ style.css 页面样式文件
│ │ ├─ images 图片
│ │ │ └─ logo.webp logo
│ │ └─ js javascript文件
│ │ ├─ background.js 页面粒子插件配置
│ │ ├─ bootstrap-select.js bootstrap-select插件文件
│ │ ├─ bootstrap.bundle.min.js bootstrap文件
│ │ ├─ bootstrap.min.js bootstrap文件
│ │ ├─ common.js 公共js
│ │ ├─ jquery.min.js jquery.js
│ │ ├─ jquery.table2excel.min.js 导出文件插件
│ │ ├─ navbar.js 导航js
│ │ ├─ page.js 分页js
│ │ ├─ particles.js 页面粒子插件
│ │ └─ table.js 页面表单js
│ ├─ templates 前端页面模板
│ │ ├─ 400.html 400页面
│ │ ├─ 404.html 404页面
│ │ ├─ 500.html 500页面
│ │ ├─ add_edit_user.html
│ │ ├─ add_score.html
│ │ ├─ add_teacher_course.html
│ │ ├─ base.html
│ │ ├─ choose_course.html
│ │ ├─ course_setup.html
│ │ ├─ edit_password.html
│ │ ├─ index.html
│ │ ├─ isChoosed_course.html
│ │ ├─ login.html
│ │ ├─ managing_college.html
│ │ ├─ managing_course.html
│ │ ├─ managing_major.html
│ │ ├─ managing_users.html
│ │ ├─ personal_information.html
│ │ ├─ revise_info.html
│ │ └─ score_query.html
│ ├─ utils 存放功能函数
│ │ ├─ query.py
│ ├─ web 视图,用于处理http请求、处理modal、返回信息
│ │ ├─ manager.py
│ │ ├─ student.py
│ │ ├─ teacher.py
│ │ ├─ views.py
│ │ ├─ __init__.py
│ ├─ __init__.py
├─ config.py 配置文件
├─ error.py 错误处理
├─ main.py 入口函数
├─ requirement.txt 项目依赖
数据库设计

安装环境
安装virtualenv
打开cmd,输入命令:
pip install virtualenv
安装新的虚拟环境:
mkdir project 新建project文件夹
cd project 进入project文件夹
virtualenv venv 安装环境
激活环境:
venv\scripts\activate
查看第三方包:
pip list
复制项目到project文件夹下,安装requirements.txt依赖
pip install -r requirement.txt
修改配置
新建数据库
打开navicat连接数据库,新建数据库,名称student_management_system或者自己取,字符集为utf8mb4,导入SQL的文件执行或者新建查询复制sql文件的内容到查询并执行
修改项目配置
config.py的配置,配置为自己的:
HOST = '127.0.0.1'
PORT = '3306' #端口
DATABASE = 'student_management_system' #数据库名称
USERNAME = 'root' # 连接用户名称
PASSWORD = '123456' #密码
入口函数main.py修改端口:
from app import appif __name__ == "__main__":app.run(host='127.0.0.1', port=1208, debug=True)
数据库迁移
安装完上面的依赖后,执行:
#生成迁移文件夹 只执行一次:
flask db init
#⽣成迁移版本, 保存到迁移文件夹中:
flask db migrate
#执行迁移:
flask db upgrade
运行
选择Enter interpreter path载入,本地的虚拟环境路径或者直接选择,VS Code从本地读取到的虚拟环境(刚才安装的venv\scripts\activate)
py main.py
登录
学生
账号:20231001
密码:123
教师
账号:30000001
密码:123456
管理员
账号:12345678
密码:admin
更多源码获取查看
相关文章:
python flask学生管理系统
预览 前端 jquery css html bootstrap: 4.x 后端 python: 3.6.x flask: 2.0.x 数据库 mysql: 5.7 学生管理模块 登录、退出查看个人信息、修改个人信息成绩查询查看已选课程选课、取消选课搜索课程课程列表分页功能 教师模块 登录、退出查看个人信息、修改个人信息录入…...
IDC机房服务器搬迁之运行了几年的服务器没关过机,今天关机下架,再上架突然起不来了,怎么快速处理?
环境 戴尔R420 服务器 1U 2台直连存储 4U CentOS 7 问题描述 IDC机房服务器搬迁之运行了几年的服务器没关过机,今天关机下架,再上架突然起不来了,怎么快速处理? 服务器上电开机就出现进入紧急模式 Welcome to emergency mode! After logging in, type “journalctl …...
基于位的权限系统
基于位的权限系统是一种利用二进制位运算进行权限管理的技术。在这种系统中,不同的权限被编码为2的幂次方 (例如1、2、4、8等),每个权限对应一个独立的二进制位(可想而知运算速度是非常快的)。通过将这些权限值组合在一起形成一个…...
[AIGC] Spring Boot Docker 部署指南
Spring Boot Docker 部署指南 引言 近年来,容器化部署成为了越来越流行的部署方式。Docker 是目前最受欢迎的容器化平台之一,它提供了一种将应用程序与其依赖项打包在一起,并以容器的形式运行的方法。Spring Boot 是一种用于快速开发和微服…...
图像处理------亮度
from PIL import Imagedef change_brightness(img: Image, level: float) -> Image:"""按照给定的亮度等级,改变图片的亮度"""def brightness(c: int) -> float:return 128 level (c - 128)if not -255.0 < level < 25…...
LeetCode刷题---基本计算器
解题思路: 根据题意,字符串中包含的运算符只有和- 使用辅助栈的方法来解决该问题 定义结果集res和符号位sign(用于判断对下一数的加减操作),接着对字符串进行遍历。 如果当前字符为数字字符,判断当前字符的下一个字符是否也是数字字符&#x…...
Kafka生产消费流程
Kafka生产消费流程 1.Kafka一条消息发送和消费的流程图(非集群) 2.三种发送方式 准备工作 创建maven工程,引入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.3.1…...
c 小熊猫 c++ IDE编译ffmpeg 设置
菜单-》运行-》运行参数->编译器->编译器配置集->链接时加入下列选项 : -I /usr/local/ffmpeg/include -L /usr/local/ffmpeg/lib -lavformat -lavdevice -lavfilter -lavcodec -lavutil -lswscale -lswresample -lm 本机ffmpeg存储位置:inclu…...
【Java】十年老司机转开发语言,新小白从学习路线图开始
欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握…...
5.3 Verilog 带参数例化
5.3 Verilog 带参数例化 分类 Verilog 教程 关键词: defparam,参数,例化,ram 当一个模块被另一个模块引用例化时,高层模块可以对低层模块的参数值进行改写。这样就允许在编译时将不同的参数传递给多个相同名字的模块…...
边缘计算的挑战和机遇
边缘计算是一种分布式计算框架,它将应用程序、数据和计算服务带离集中式数据中心,靠近用户和数据源的位置。这种方法可以减少延迟,提高服务速度,并可能改善数据安全性和隐私性。然而,边缘计算同时也面临着挑战…...
Mybatis基础---------增删查改
目录结构 增删改 1、新建工具类用来获取会话对象 import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.ibatis.io.Resources;import java.io…...
CentOS查看修改时间
经常玩docker的朋友应该都知道,有很多的镜像运行起来后,发现容器里的系统时间不对,一般是晚被北京时间8个小时(不一定)。 这里合理怀疑是镜像给的初始时区是世界标准时间(也叫协调世界时间)。 有…...
Kafka消费流程
Kafka消费流程 消息是如何被消费者消费掉的。其中最核心的有以下内容。 1、多线程安全问题 2、群组协调 3、分区再均衡 1.多线程安全问题 当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。 对于线程安全&…...
RPC原理介绍与使用(@RpcServiceAnnotation)
Java RPC(Remote Procedure Call,远程过程调用)是一种用于实现分布式系统中不同节点之间通信的技术。它允许在不同的计算机或进程之间调用远程方法,就像调用本地方法一样。 ** 一.Java RPC的原理如下: ** 定义接口&…...
力扣labuladong——一刷day94
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言二叉堆(Binary Heap)没什么神秘,性质比二叉搜索树 BST 还简单。其主要操作就两个,sink(下沉…...
Vim 是一款强大的文本编辑器,广泛用于 Linux 和其他 Unix 系统。以下是 Vim 的一些基本用法
Vim 是一款强大的文本编辑器,广泛用于 Linux 和其他 Unix 系统。以下是 Vim 的一些基本用法: 打开文件: vim filename 基本移动: 使用箭头键或 h, j, k, l 分别向左、下、上、右移动。Ctrl f: 向前翻页。Ctrl b: 向后翻页。…...
软件工程:黑盒测试等价分类法相关知识和多实例分析
目录 一、黑盒测试和等价分类法 1. 黑盒测试 2. 等价分类法 二、黑盒测试等价分类法实例分析 1. 工厂招工年龄测试 2. 规定电话号码测试 3. 八位微机测试 4. 三角形判断测试 一、黑盒测试和等价分类法 1. 黑盒测试 黑盒测试就是根据被测试程序功能来进行测试…...
stable-diffusion 学习笔记
必看文档: 万字长篇!超全Stable Diffusion AI绘画参数及原理详解 - 知乎 (提示词)语法控制 常用语法: 加权:() 或 {} 降权:[](word)//将括号内的提示词权重提高 1.1 倍 ((word))//将括号内的提示…...
手写webpack核心原理,支持typescript的编译和循环依赖问题的解决
主要知识点 babel读取代码的import语句算法:bfs遍历依赖图为浏览器定义一个require函数的polyfill算法:用记忆化搜索解决require函数的循环依赖问题 Quick Start GitHub:https://github.com/Hans774882968/mini-webpack npm install npm…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
