一篇文章教你用Python实现一个学生管理系统

yizhihongxing

一篇文章教你用Python实现一个学生管理系统

本文将会介绍如何使用Python语言实现一个简单的学生管理系统。该系统可以用来存储学生的基本信息(如姓名、年龄、性别、学号等)以及其它相关信息(如成绩、考勤等),并提供增、删、改、查等功能。

环境搭建

首先需要安装Python环境和相关的库文件。

可以在Python官网上下载并安装最新版本的Python。然后使用命令行工具(如cmd)输入以下命令安装所需库文件:

pip install pymysql prettytable

其中,pymysql库用于连接数据库,prettytable库用于美化表格输出。

数据库设计

在MySQL数据库中创建一个新的数据库,我们可以命名为“student”。
然后在该数据库中创建一张名为“studentInfo”的表,用于存储学生的基本信息。该表的结构如下:

CREATE TABLE studentInfo (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT(11) NOT NULL,
  gender VARCHAR(10) NOT NULL,
  student_id VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

实现代码

连接数据库

使用pymysql库来连接数据库,代码如下:

import pymysql

conn = pymysql.connect(
    host='localhost',  # 数据库服务器地址
    user='root',  # 数据库用户名
    password='',  # 数据库密码
    db='student',  # 数据库名字
    charset='utf8mb4',  # 字符集
    cursorclass=pymysql.cursors.DictCursor
)

添加学生信息

将学生的基本信息保存到数据库中,代码如下:

def add_student():
    name = input("请输入学生的姓名:")
    age = input("请输入学生的年龄:")
    gender = input("请输入学生的性别:")
    student_id = input("请输入学生的学号:")

    cursor = conn.cursor()

    sql = "INSERT INTO studentInfo (name, age, gender, student_id) VALUES (%s, %s, %s, %s)"
    cursor.execute(sql, (name, age, gender, student_id))

    conn.commit()
    cursor.close()

    print("添加成功!")

删除学生信息

从数据库中删除学生的信息,代码如下:

def delete_student():
    student_id = input("请输入要删除的学生的学号:")

    cursor = conn.cursor()

    sql = "DELETE FROM studentInfo WHERE student_id=%s"
    cursor.execute(sql, student_id)

    conn.commit()
    cursor.close()

    print("删除成功!")

修改学生信息

修改学生的信息,代码如下:

def update_student():
    student_id = input("请输入要修改的学生的学号:")

    cursor = conn.cursor()

    sql = "SELECT * FROM studentInfo WHERE student_id=%s"
    cursor.execute(sql, student_id)
    result = cursor.fetchone()

    if result is None:
        print("该学生不存在!")
    else:
        name = input("请输入学生的姓名:")
        age = input("请输入学生的年龄:")
        gender = input("请输入学生的性别:")

        sql = "UPDATE studentInfo SET name=%s, age=%s, gender=%s WHERE student_id=%s"
        cursor.execute(sql, (name, age, gender, student_id))

        conn.commit()
        cursor.close()

        print("修改成功!")

查询学生信息

查询学生的信息,并以表格的形式输出结果,代码如下:

def query_student():
    cursor = conn.cursor()

    sql = "SELECT * FROM studentInfo"
    cursor.execute(sql)
    results = cursor.fetchall()

    if len(results) == 0:
        print("没有学生信息!")
    else:
        cols = ['id', '姓名', '年龄', '性别', '学号']
        rows = []
        for r in results:
            row = [r['id'], r['name'], r['age'], r['gender'], r['student_id']]
            rows.append(row)

        table = prettytable.PrettyTable(cols)
        table.add_rows(rows)

        print(table)

示例说明

示例一

添加一个新的学生信息:

请输入学生的姓名:张三
请输入学生的年龄:18
请输入学生的性别:男
请输入学生的学号:001

添加成功!

查询所有学生的信息:

+----+------+----+------+--------+
| id |  姓名 | 年龄 | 性别 | 学号  |
+----+------+----+------+--------+
| 1  | 张三 | 18 | 男 | 001 |
+----+------+----+------+--------+

示例二

删除学号为“001”的学生信息:

请输入要删除的学生的学号:001

删除成功!

查询所有学生的信息:

没有学生信息!

总结

本文介绍了如何使用Python语言实现一个简单的学生管理系统。需要掌握的技能包括:连接数据库、添加、删除、修改、查询学生信息、以及使用prettytable库进行表格美化输出等。可以根据自己的需求进行扩展和优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章教你用Python实现一个学生管理系统 - Python技术站

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

相关文章

  • Python列表list内建函数用法实例分析【insert、remove、index、pop等】

    以下是详细讲解“Python列表list内建函数用法实例分析【insert、remove、index、pop等】”的完整攻略。 在Python中,列表(list)是种常见数据结构。Python提供了许多内建函数来操作列表,包括insert()、remove()、index()、pop()等。本文将详细绍这些函数的用法,并提供一些示例说明。 insert()函…

    python 2023年5月13日
    00
  • Python面向对象编程基础解析(一)

    针对“Python面向对象编程基础解析(一)”这篇文章,以下是详细的攻略: Python面向对象编程基础解析(一)——概念篇 1. 什么是面向对象编程(Object-oriented Programming)? 首先,本文对面向对象编程的定义进行了介绍,即,将数据和操作数据的方法封装在一起,形成一个对象。在面向对象编程中,我们对于对象中的数据和方法的访问是通…

    python 2023年5月13日
    00
  • Python之日期与时间处理模块(date和datetime)

    Python之日期与时间处理模块(date和datetime) 在Python中日期和时间处理非常方便,Python标准库提供了两个重要的模块date和datetime。本篇文章将详细介绍如何使用这两个模块,并通过示例展示具体的使用方法。 date模块 date模块提供了一个date类,该类表示一个简单的日期对象,包含年月日的信息。 创建日期对象 使用dat…

    python 2023年5月14日
    00
  • 使用遗传算法求二元函数的最小值

    使用遗传算法求解二元函数$ f(x,y) $的极小值问题通常可以按照以下步骤进行: 1. 确定优化目标 遗传算法的优化过程需要一个适应度函数来评估每个个体的优劣程度。对于二元函数的极小值问题,通常可以将优化目标定义为: $$\min f(x, y)$$ 2. 确定编码方式 在遗传算法中,个体一般采用二进制编码方式。对于二元函数的极小值问题,可以采用以下方式进…

    python 2023年6月3日
    00
  • Python如何基于selenium实现自动登录博客园

    下面是针对“Python如何基于selenium实现自动登录博客园”的完整攻略,希望能够帮助到你。 准备工作 安装selenium库:可以通过pip install selenium或者conda等方式安装。 下载对应的浏览器driver:例如谷歌浏览器需要下载对应的chromedriver,并将其路径加入系统环境变量中。 自动登录博客园 接下来,我们将通过…

    python 2023年5月19日
    00
  • 详解基于pycharm的requests库使用教程

    以下是关于基于PyCharm的requests库使用教程的攻略: 详解基于PyCharm的requests库使用教程 PyCharm是一款强大的Python IDE,可以方便地使用requests库进行HTTP请求。以下是基于PyCharm的requests库使用教程的攻略。 安装requests库 在使用requests库之前,需要先安装它。可以使用pip…

    python 2023年5月15日
    00
  • 基于Python Dash库制作酷炫的可视化大屏

    基于Python Dash库制作酷炫的可视化大屏的攻略如下: 步骤1:安装必要的库 在Python中,我们需要安装Dash库和Plotly库。Dash库用于构建Web应用程序,Plotly库用于绘制交互式图表。使用以下命令安装这两个库: pip install dash plotly 步骤2:创建Dash应用程序 在Python中,我们可以使用Dash库创建…

    python 2023年5月15日
    00
  • Python WSGI 规范简介

    让我来详细讲解“Python WSGI 规范简介”的完整攻略。 什么是 WSGI? WSGI 全称为 Web 服务器网关接口(Web Server Gateway Interface),是 Python 语言定义的 Web 服务器和 Web 应用程序之间的标准接口,它规范了 Python Web 程序的接口,使得 Web 服务器能够简单地调用 Python …

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