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

一篇文章教你用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实现文件压缩和解压的示例代码

    Python有一个标准库模块叫zipfile,可以用来实现文件压缩和解压缩。下面分别讲解压缩和解压缩的示例代码和说明。 文件压缩的示例代码 import zipfile def compress_file(input_path, output_path): with zipfile.ZipFile(output_path, ‘w’, compression=…

    python 2023年6月3日
    00
  • linux系统下pip升级报错的解决方法

    下面是详细讲解“linux系统下pip升级报错的解决方法”的完整攻略。 1. 问题描述 在 Linux 系统中,我们使用 pip 命令来进行 Python 包的安装和升级。某些情况下,可能会遇到升级 pip 报错的问题: ERROR: Exception: Traceback (most recent call last): … pkg_resource…

    python 2023年5月13日
    00
  • Request的中断和ErrorHandler实例解析

    当我们在使用 Express 发起请求时,请求可能会因为各种原因中断,比如超时、网络连接问题等等。此时,我们就需要捕获对应的错误,为此,Express 提供了一个中间件函数 ErrorHandler。 下面,我们将开始详细讲解“Request的中断和ErrorHandler实例解析”的攻略。攻略分为如下两个部分: Request的中断 ErrorHandle…

    python 2023年5月13日
    00
  • JS正则表达式基本用法(经典全)

    下面是详细的攻略: JS正则表达式基本用法(经典全) 在JavaScript中,正则表达式是一种强大的工具,可以用于字符串匹配、替换、分割等操作。本文将介绍JS正则表达式的基本用法,并提供两个示例说明。 正则表达式基本语法 在JavaScript中,我们可以使用RegExp对象来创建正则表达式。正则表达式由模式和标志组成,模式是由字符和元字符组成的字符串,标…

    python 2023年5月14日
    00
  • python中Pycharm 输出中文或打印中文乱码现象的解决办法

    下面是Python中Pycharm输出中文或打印中文乱码现象的解决办法,具体步骤如下: 问题描述 在编写Python代码时,经常需要输出中文,但是在使用Pycharm输出中文或打印中文时,有时会出现乱码现象。例如,我们使用print()函数输出中文字符串“你好”,结果在输出时却变成了“鏈€濂藉”。 解决办法 1. 修改文件编码格式 Pycharm的默认编码…

    python 2023年5月20日
    00
  • python实现读取大文件并逐行写入另外一个文件

    当文件过大时,将整个文件读取并处理会导致内存爆炸。因此在处理大文件时,需要一行一行地处理,这样可以在占用比较小的内存情况下完成数据处理。以下是实现读取大文件并逐行写入另外一个文件的攻略: 1. 打开文件 首先需要打开待读取的大文件和待写入的文件,使用open()函数即可打开文件,常用参数有文件名、打开模式。对于大文件来说,还需要设置缓冲区大小参数,即buff…

    python 2023年6月5日
    00
  • 正则化DropPath/drop_path用法示例(Python实现)

    正则化DropPath/drop_path用法示例(Python实现) DropPath是一种正则化技术,用于减少神经网络的过拟合。DropPath的基本思想是在训练过程中随机删除一些神经元,从而强制网络学习更加鲁棒的特征。在本文中,我们将介绍DropPath的用法,并提供Python实现的示例。 DropPath的原理 DropPath是在Dropout的…

    python 2023年5月14日
    00
  • python3.6 如何将list存入txt后再读出list的方法

    以下是详细讲解“python3.6如何将list存入txt后再读出list的方法”的完整攻略。 在Python,可以使用文件来存储数据。本文将介绍如何将list存入txt文件,并读取出list。 将list存入txt文件中 可以使用文件操作函数open()和write()将list存入txt文件中。例如: lst = [1, 2, 3, 4, 5] with…

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