python flask学生管理系统

news2024/12/28 4:09:53

预览

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前端

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 app

if __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

更多源码获取查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1390261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Gazebo的模型下载。

git clone zouxu634866/gazebo_modelshttps://gitee.com/zouxu6348660/gazebo_models.git,并完成路径配置。 (本文提供了gitee下载,国外的Github下载较慢。)

JDK8-JDK17版本升级

局部变量类型推断 switch表达式 文本块 Records 记录Records是添加到 Java 14 的一项新功能。它允许你创建用于存储数据的类。它类似于 POJO 类,但代码少得多;大多数开发人员使用 Lombok 生成 POJO 类,但是有了记录,你就不需要使…

通过生成mcs、bin文件将程序固化到FPGA

通过将程序固化到FPGA,可以做到断电不丢失程序,上电之后就自动启动程序的作用,整个固化步骤主要分为3步,一是修改约束文件,二是生成mcs或bin文件,三是将程序固化到开发板flash 1.修改约束文件 生成固化文…

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题,今天稍微总结总结,以后方便自己查找。 一、单台Mac进行压测时候,压测客户端Jmeter启动超过2000个线程,Jmeter报OOM错误,如何解决? 解答:单台Mac配置内存为8G&…

蓝桥杯准备

书籍获取:Z-Library – 世界上最大的电子图书馆。自由访问知识和文化。 (zlibrary-east.se) 书评:(豆瓣) (douban.com) 一、观千曲而后晓声 别人常说蓝桥杯拿奖很简单,但是拿奖是一回事,拿什么奖又是一回事。况且,如果…

liunx安装redis

安装redis 1.向Xftp7上传Redis压缩包 进行解压:tar -zxvf redis-6.0.8.tar.gz 解压后预编译: cd redis-6.0.8 make 创建文件: mkdir -p /opt/redis 安装到指定目录: make install PREFIX/opt/redis 进入安装文件 bin 目录:cd /opt/redis/bin ./redis-se…

【python入门】day27: 模拟高铁售票系统

界面 代码 #-*- coding:utf-8 -*- import prettytable as pt#---------导入漂亮表格 import os.path filename ticket.txt#更新座位状态 def update(row_num):#------更新购票状态with open(filename,w,encodingutf-8) as wfile:for i in range(row_num):lst1 [f{i1},有票,有…

Springboot + websocket 实现 一对一 单人聊天

Springboot websocket 实现 一对一 单人聊天 要使用websocket ,需要添加 jar 打开项目中的pom.xml,添加以下内容 创建java端代码 配置websocke的endpoints 配置websocket的server ServerEndpoint(value "/websocket/{username}") 这句话 一定要注意, 这里 路…

寻找峰值题目解析

一、题目描述 162. 寻找峰值 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ …

hcip-4

ISIS:中央系统到中央系统 基于OSI模型开发; 集成的ISIS,基于OSI开发后转移到TCP/IP模型执行; 故集成的ISIS既可以在OSI模型,也可在TCP/IP模型工作; ISIS是在ISP中使用的一个IGP协议,其归属于无类别链路状…

x-cmd pkg | duf - df 命令的现代化替代品

目录 简介用户首次快速实验指南技术特点竞品和相关作品进一步探索 简介 Duf (Disk Usage/Free Utility)是一个磁盘分析工具。其直观的输出和多样化的自定义选项,帮助用户更好地管理和优化存储资源。 用户首次快速实验指南 使用 x duf 即可自…

系统性学习vue-组件及脚手架

书接上文 Vue组件及脚手架 初始化脚手架说明步骤 分析脚手架结构render函数修改默认配置ref属性props配置mixin 混入/混合定义混合局部混合全局混合 插件scoped样式安装less-loader 浏览器的本地存储 webStoragelocalStroage 本地存储sessionStorage 会话存储 组件自定义事件绑…

Spring高手之路-Spring的AOP失效场景详解

目录 前言 1.非Spring管理的对象 2.同一个Bean内部方法调用 3.静态方法 4.final方法 5.异步方法 总结 前言 Spring的AOP(面向切面编程)是一种强大的技术,用于在应用程序中实现横切关注点的模块化。虽然Spring的AOP在大多数情况下都是…

如何画出优秀的系统架构图-架构师系列-学习总结

--- 后之视今,亦犹今之视昔! 目录 早期系统架构图 早期系统架构视图 41视图解读 41架构视图缺点 现代系统架构图的指导实践 业务架构 例子 使用场景 画图技巧 客户端架构、前端架构 例子 使用场景 画图技巧 系统架构 例子 定义 使用场…

利用金属-有机配位聚合物精准放大胞内氧化风暴增强抗癌免疫

伴随活性氧(ROS)爆发的氧化应激控制免疫细胞在肿瘤微环境中的浸润、活化和分化,因此可以引发强大的抗肿瘤免疫。近期,中国药科大学药学院凌祥老师团队在ACS Nano(IF17.1)上发表了题为“Precisely Amplifyin…

uniapp中uview组件库的AlertTips 警告提示使用方法

目录 #使用场景 #平台差异说明 #基本使用 #图标 #可关闭的警告提示 #API #Props #Events 警告提示,展现需要关注的信息。 #使用场景 当某个页面需要向用户显示警告的信息时。非浮层的静态展现形式,始终展现,不会自动消失&#xff0…

MyBatis的配置

1.配置myBatis 1.myBatis的作用 MyBatis 是一个开源的持久层框架,它的主要作用是简化数据库操作,使得开发者能够更方便地与数据库进行交互。 MyBatis 允许开发者使用简单的 XML 或注解配置 SQL 映射,从而实现数据库操作,而不需要…

深入理解Spring IOC

1. IOC 理论 IOC 全称控制反转,英文名为 Inversion of Control,它还有一个别名为 DI(Dependency Injection),即依赖注入。 在我们刚接触Spring的时候,我们就听说了IOC,但是对于IOC的理解,貌似…

MongoDB-数据库文档操作(1)

任务描述 文档数据在 MongoDB 中的插入和更新。 相关知识 本文将向大家介绍文档数据在 MongoDB 中的基本操作。 文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 JSON 的一种二进制形式的存储格式,简称&#x…

C++核心编程(包含:内存、函数、引用、类与对象、文件操作等)【持续更新】

🌈个人主页:godspeed_lucip 🔥 系列专栏:C从基础到进阶 C核心编程🌏1 内存分区模型🎄1.1 程序运行前🎄1.2 程序运行后🎄1.3 new操作符 🌏2 引用🎄2.1 引用的基…