当前位置: 首页 > news >正文

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:"""按照给定的亮度等级&#xff0c;改变图片的亮度"""def brightness(c: int) -> float:return 128 level (c - 128)if not -255.0 < level < 25…...

LeetCode刷题---基本计算器

解题思路&#xff1a; 根据题意&#xff0c;字符串中包含的运算符只有和- 使用辅助栈的方法来解决该问题 定义结果集res和符号位sign(用于判断对下一数的加减操作),接着对字符串进行遍历。 如果当前字符为数字字符&#xff0c;判断当前字符的下一个字符是否也是数字字符&#x…...

Kafka生产消费流程

Kafka生产消费流程 1.Kafka一条消息发送和消费的流程图(非集群) 2.三种发送方式 准备工作 创建maven工程&#xff0c;引入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>3.3.1…...

c 小熊猫 c++ IDE编译ffmpeg 设置

菜单-》运行-》运行参数->编译器->编译器配置集->链接时加入下列选项 &#xff1a; -I /usr/local/ffmpeg/include -L /usr/local/ffmpeg/lib -lavformat -lavdevice -lavfilter -lavcodec -lavutil -lswscale -lswresample -lm 本机ffmpeg存储位置&#xff1a;inclu…...

【Java】十年老司机转开发语言,新小白从学习路线图开始

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《Java》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…...

5.3 Verilog 带参数例化

5.3 Verilog 带参数例化 分类 Verilog 教程 关键词&#xff1a; defparam&#xff0c;参数&#xff0c;例化&#xff0c;ram 当一个模块被另一个模块引用例化时&#xff0c;高层模块可以对低层模块的参数值进行改写。这样就允许在编译时将不同的参数传递给多个相同名字的模块…...

边缘计算的挑战和机遇

边缘计算是一种分布式计算框架&#xff0c;它将应用程序、数据和计算服务带离集中式数据中心&#xff0c;靠近用户和数据源的位置。这种方法可以减少延迟&#xff0c;提高服务速度&#xff0c;并可能改善数据安全性和隐私性。然而&#xff0c;边缘计算同时也面临着挑战&#xf…...

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的朋友应该都知道&#xff0c;有很多的镜像运行起来后&#xff0c;发现容器里的系统时间不对&#xff0c;一般是晚被北京时间8个小时&#xff08;不一定&#xff09;。 这里合理怀疑是镜像给的初始时区是世界标准时间&#xff08;也叫协调世界时间&#xff09;。 有…...

Kafka消费流程

Kafka消费流程 消息是如何被消费者消费掉的。其中最核心的有以下内容。 1、多线程安全问题 2、群组协调 3、分区再均衡 1.多线程安全问题 当多个线程访问某个类时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么就称这个类是线程安全的。 对于线程安全&…...

RPC原理介绍与使用(@RpcServiceAnnotation)

Java RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种用于实现分布式系统中不同节点之间通信的技术。它允许在不同的计算机或进程之间调用远程方法&#xff0c;就像调用本地方法一样。 ** 一.Java RPC的原理如下&#xff1a; ** 定义接口&…...

力扣labuladong——一刷day94

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言二叉堆&#xff08;Binary Heap&#xff09;没什么神秘&#xff0c;性质比二叉搜索树 BST 还简单。其主要操作就两个&#xff0c;sink&#xff08;下沉&#xf…...

Vim 是一款强大的文本编辑器,广泛用于 Linux 和其他 Unix 系统。以下是 Vim 的一些基本用法

Vim 是一款强大的文本编辑器&#xff0c;广泛用于 Linux 和其他 Unix 系统。以下是 Vim 的一些基本用法&#xff1a; 打开文件&#xff1a; vim filename 基本移动&#xff1a; 使用箭头键或 h, j, k, l 分别向左、下、上、右移动。Ctrl f: 向前翻页。Ctrl b: 向后翻页。…...

软件工程:黑盒测试等价分类法相关知识和多实例分析

目录 一、黑盒测试和等价分类法 1. 黑盒测试 2. 等价分类法 二、黑盒测试等价分类法实例分析 1. 工厂招工年龄测试 2. 规定电话号码测试 3. 八位微机测试 4. 三角形判断测试 一、黑盒测试和等价分类法 1. 黑盒测试 黑盒测试就是根据被测试程序功能来进行测试&#xf…...

stable-diffusion 学习笔记

必看文档&#xff1a; 万字长篇&#xff01;超全Stable Diffusion AI绘画参数及原理详解 - 知乎 &#xff08;提示词&#xff09;语法控制 常用语法&#xff1a; 加权&#xff1a;() 或 {} 降权&#xff1a;[](word)//将括号内的提示词权重提高 1.1 倍 ((word))//将括号内的提示…...

手写webpack核心原理,支持typescript的编译和循环依赖问题的解决

主要知识点 babel读取代码的import语句算法&#xff1a;bfs遍历依赖图为浏览器定义一个require函数的polyfill算法&#xff1a;用记忆化搜索解决require函数的循环依赖问题 Quick Start GitHub&#xff1a;https://github.com/Hans774882968/mini-webpack npm install npm…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

git: early EOF

macOS报错&#xff1a; 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…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...