基于python实现学生管理系统

yizhihongxing

基于Python实现学生管理系统

简介

学生管理系统是一种很常见的应用系统,用于方便学校对学生信息进行管理。本文介绍了如何使用Python语言来实现一个简单的学生管理系统,包括设计数据库、编写程序等。

设计数据库

学生管理系统需要存储的数据包括学生信息、课程信息、成绩信息等。因此,需要设计一个关系型数据库来存储这些信息。在本示例中,我们使用MySQL数据库。

在MySQL数据库中,我们创建一个名为"student_management_system"的数据库,在其中创建三个表:studentscourses,以及scores

可以使用以下的SQL代码来创建相应的表:

-- 创建students表
CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  gender VARCHAR(10) NOT NULL,
  birthday DATE,
  major VARCHAR(255)
);

-- 创建courses表
CREATE TABLE courses (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  teacher VARCHAR(255),
  credit FLOAT
);

-- 创建scores表
CREATE TABLE scores (
  student_id INT NOT NULL,
  course_id INT NOT NULL,
  score FLOAT NOT NULL,
  PRIMARY KEY (student_id, course_id),
  FOREIGN KEY (student_id) REFERENCES students(id),
  FOREIGN KEY (course_id) REFERENCES courses(id)
);

编写程序

我们使用Python语言来编写程序,需要使用pymysql库来连接MySQL数据库,使用flask库构建Web应用。在本示例中,我们使用Python 3.7.7版本进行开发。

安装依赖

可以使用以下命令安装所需的依赖:

pip install pymysql flask

连接数据库

连接MySQL数据库需要进行以下配置:

import pymysql

# 数据库连接配置
DB_HOST = 'localhost'
DB_PORT = 3306
DB_USER = 'root'
DB_PASSWORD = 'password'
DB_NAME = 'student_management_system'

# 创建数据库连接
conn = pymysql.connect(host=DB_HOST, port=DB_PORT, user=DB_USER, password=DB_PASSWORD, db=DB_NAME)

Flask应用

我们使用Flask构建Web应用。在本示例中,我们将使用Flask提供的Blueprint机制,将应用的不同部分分别封装成不同的蓝图。

from flask import Flask
from students import students_bp
from courses import courses_bp
from scores import scores_bp

app = Flask(__name__)

app.config.update(
    DEBUG=True,
    SECRET_KEY='thisisasecretkey',
)

# 注册蓝图
app.register_blueprint(students_bp)
app.register_blueprint(courses_bp)
app.register_blueprint(scores_bp)

在上面的代码中,我们注册了三个蓝图:students_bpcourses_bp以及scores_bp。这三个蓝图分别对应学生管理、课程管理以及成绩管理三个模块。

编写蓝图

接下来,我们分别编写三个蓝图的代码。以下是students_bp的示例代码:

from flask import Blueprint, jsonify, request
import pymysql

students_bp = Blueprint('students', __name__, url_prefix='/students')

# 获取所有学生信息
@students_bp.route('/', methods=['GET'])
def get_students():
    conn = pymysql.connect(host=DB_HOST, port=DB_PORT, user=DB_USER, password=DB_PASSWORD, db=DB_NAME)
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM students')
    result = cursor.fetchall()
    conn.close()
    return jsonify(result)

# 新增学生信息
@students_bp.route('/', methods=['POST'])
def add_student():
    data = request.json
    name = data['name']
    gender = data['gender']
    birthday = data.get('birthday')
    major = data.get('major')

    conn = pymysql.connect(host=DB_HOST, port=DB_PORT, user=DB_USER, password=DB_PASSWORD, db=DB_NAME)
    cursor = conn.cursor()
    cursor.execute('INSERT INTO students(`name`, `gender`, `birthday`, `major`) VALUES (%s, %s, %s, %s)',
                   (name, gender, birthday, major))
    conn.commit()
    conn.close()
    return 'OK'

# 删除学生信息
@students_bp.route('/<int:id>', methods=['DELETE'])
def delete_student(id):
    conn = pymysql.connect(host=DB_HOST, port=DB_PORT, user=DB_USER, password=DB_PASSWORD, db=DB_NAME)
    cursor = conn.cursor()
    cursor.execute('DELETE FROM students WHERE id=%s', id)
    conn.commit()
    conn.close()
    return 'OK'

以上代码中,@students_bp.route('/<int:id>', methods=['DELETE'])表示该路由处理DELETE请求,并传入一个名为id的参数,该参数为整数类型。类似的,我们可以在其他蓝图中编写相应的路由。

运行应用

最后,我们使用以下代码启动Flask应用:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

现在,我们可以使用浏览器或者其他HTTP客户端工具来测试我们的应用了。

示例说明

以下是两个关于使用该学生管理系统的示例说明:

示例1

小明是一名学生,他想查看自己的成绩单。他访问学生管理系统,输入自己的学号和密码,即可查看到自己的所有成绩信息。

示例2

小红是一名教师,她需要录入学生的成绩。她访问学生管理系统,输入自己的教师账号和密码,进入成绩录入页面。她选择相应的课程,并输入学生的学号和成绩,即可完成成绩录入。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于python实现学生管理系统 - Python技术站

(1)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Python面向对象类编写细节分析【类,方法,继承,超类,接口等】

    下面是Python面向对象类编写细节分析的完整攻略: 1. 类(Class) 1.1 创建类 在Python中,使用class关键字来创建一个类,类名遵循大驼峰命名法。类通常包含属性和方法。一个简单的类的创建代码: class MyClass: pass 1.2 构造函数 在类中定义一个特殊的方法__init__()作为构造函数,用于初始化对象的属性。构造函…

    python 2023年5月18日
    00
  • python使用cv2库、下载opencv库的方法

    本攻略将介绍如何使用Python的cv2库进行图像处理,并提供下载opencv库的方法。我们将使用pip命令安装cv2库,并使用cv2库进行图像读取、显示和保存。 安装cv2库 我们可以使用pip命令安装cv2库。以下是一个示例代码,用于安装cv2库: pip install opencv-python 在上面的代码中,我们使用pip命令安装cv2库。如果您…

    python 2023年5月15日
    00
  • Python 子进程/Popen 标准输出被截断

    【问题标题】:Python subprocess/Popen stdout is truncatedPython 子进程/Popen 标准输出被截断 【发布时间】:2023-04-06 21:15:02 【问题描述】: Popen stdout 的输出与从 Shell 运行命令或使用 os.system 不同: cmd = [‘git’, ‘diff’, c…

    Python开发 2023年4月7日
    00
  • pip报错“SyntaxError: invalid syntax”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “SyntaxError: invalid syntax” 错误。这个错误通常是由于命令行中输入的语法不正确导致的。以下是详细讲解 pip 报错 “SyntaxError: invalid syntax” 的原因与解决办法,包含两条实例说明: 原因 “SyntaxError: invalid syntax…

    python 2023年5月4日
    00
  • 浅谈Python实现opencv之图片色素的数值运算和逻辑运算

    浅谈Python实现opencv之图片色素的数值运算和逻辑运算 一、背景介绍 OpenCV是计算机视觉领域最常用的开源计算机视觉和机器学习库之一,支持图像处理和计算机视觉中的许多常用算法。在Python中,OpenCV被认为是进行图像处理和计算机视觉项目的一个最常用的库。本文主要介绍如何使用Python和OpenCV进行图片色素的数值运算和逻辑运算。 二、实…

    python 2023年5月19日
    00
  • Python入门_学会创建并调用函数的方法

    Python是一门简单易学的编程语言,函数是Python编程中的重要概念之一。创建函数是Python编程中的基本操作之一,学会函数的创建和调用对于学习Python编程非常重要。 1. 函数的简介 函数是一段可重复使用的代码,用来实现特定的功能,并以函数名被调用。Python中的函数定义以def关键词开头,后跟函数名和括号,括号中包括形式参数列表。函数体包括在…

    python 2023年6月5日
    00
  • python异常处理try的实例小结

    Python异常处理try的实例小结 在Python中,异常处理是一种重要的编程技巧,可以帮助我们更好地处理程序中的错误和异常情况。try语句是Python中异常处理的核心,用来捕获处理异常。本文将详细讲解Python异常处理try的实例,包括try-except语句的基本用法、多个except语句的使用、以及try-finally语句的使用。在过程中,我们…

    python 2023年5月13日
    00
  • Python操作lxml库之基础使用篇

    Python操作lxml库之基础使用篇 lxml是Python中一个常用的XML和HTML处理库,它提供了多种方法和工具,可以方便地解析、修改和生成XML和HTML文档。本文将总结Python操作lxml库的基础使用方法,并提供两个示例说明。 安装lxml库 在使用lxml库之前,我们需要先安装它。可以使用pip命令在命令行中安装lxml库: pip ins…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部