吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3478|回复: 49
收起左侧

[Python 原创] 简易学生管理 + MySQL

  [复制链接]
Listentomusic 发表于 2023-12-7 00:55
前几天学了在学MySQL,然后又想到了以前学的Python,于是就想着把它们融合起来。
代码很烂,希望大佬手下留情如果可以给我点建议和修改方那就太好了!


数据库表
base.png

Python代码部分

import pymysql

class StMgmt(object):
    def tips(self):
        """提示用户选择的操作"""
        print("""
        学生管理系统 1.0
        1.查看所有信息
        2.查看学生信息
        3.修改学生信息
        4.增加学生信息
        5.退出学生系统
        """)

    def connect_base(self):
        """连接数据库并返回连接和游标"""
        base = pymysql.connect(host='localhost', port=3306, db='miaosi', user='root', password='123456')
        cursor = base.cursor()
        return base, cursor

    def view_all(self):
        """查询所有学生信息"""
        base, cursor = self.connect_base()
        try:
            cursor.execute("SELECT * FROM pupildata")
            back_data = cursor.fetchall()
            for line in back_data:
                print(line)
        finally:
            base.close()

    def search_data(self):
        """查询学生信息"""
        base, cursor = self.connect_base()
        try:
            user_name = input('请输入需要查找的学生姓名: ')
            cursor.execute("SELECT * FROM pupildata WHERE name LIKE %s", (user_name,))
            back_data = cursor.fetchall()
            if back_data:
                for data in back_data:
                    print(data)
            else:
                print('没有该学生!')
        finally:
            base.close()

    def add_data(self):
        """增加学生信息"""
        base, cursor = self.connect_base()
        try:
            user_id = int(input('请输入学号: '))
            user_name = input('请输入姓名: ')
            user_sex = input('请输入性别: ')
            user_age = int(input('请输入年龄: '))
            user_birthday = input('请输入生日(xxxx-xx-xx): ')
            user_phone = int(input('请输入手机号: '))
            user_address = input('请输入地址: ')

            cursor.execute(
                "INSERT INTO pupildata VALUES (%s, %s, %s, %s, %s, %s, %s)",
                (user_id, user_name, user_sex, user_age, user_birthday, user_phone, user_address)
            )
            base.commit()
            self.search_data(user_name)
            print('学生数据添加成功!')
        finally:
            base.close()

    def edit_data(self):
        """修改学生信息"""
        base, cursor = self.connect_base()
        try:
            tips = input('请输入要修改的学生姓名: ')
            # 获取用户输入的新数据
            user_id = int(input('请输入学号: '))
            user_name = input('请输入姓名: ')
            user_sex = input('请输入性别: ')
            user_age = int(input('请输入年龄: '))
            user_birthday = input('请输入生日(xxxx-xx-xx): ')
            user_phone = int(input('请输入手机号: '))
            user_address = input('请输入地址: ')

            # 修改数据
            cursor.execute(
                "UPDATE pupildata SET id=%s, name=%s, sex=%s, age=%s, birthday=%s, phone=%s, address=%s WHERE name = %s",
                (user_id, user_name, user_sex, user_age, user_birthday, user_phone, user_address)
            )
            base.commit()
            print('学生数据修改成功!')
        finally:
            base.close()

if __name__ == '__main__':
    miaows = StMgmt()
    miaows.tips()
    while True:
        try:
            num = int(input('请输入你的选项: '))
            if num == 1:
                miaows.view_all()
            elif num == 2:
                miaows.search_data()
            elif num == 3:
                miaows.edit_data()
            elif num == 4:
                miaows.add_data()
            elif num == 5:
                print('成功退出系统!')
                break
            else:
                print('无效的选项,请重新输入。')
        except ValueError:
            print('输入错误,请输入一个整数。')
        except Exception as e:
            print(f'发生错误:{e}')

免费评分

参与人数 6吾爱币 +8 热心值 +5 收起 理由
lcg2014 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
shengruqing + 1 热心回复!
coolcalf + 1 + 1 加油,小伙纸
1045837055lucy + 1 感谢,有时间学学
arctan1 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

1e3e 发表于 2023-12-7 19:45
D:\ProgramData\Anaconda3\python.exe "D:/Program Files/Pycharm_professional_2019.3.3_Portable/bin/Pycharm/config/scratches/scratch_138.py"

        学生管理系统 1.0
        1.查看所有信息
        2.查看学生信息
        3.修改学生信息
        4.增加学生信息
        5.退出学生系统
        
请输入你的选项: 4
发生错误:(2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")
请输入你的选项:
canyonlwt 发表于 2023-12-14 19:54
有了出生年月没必要再加一个年龄的字段啊,如果有校验还行,没有校验如果输入错了,那就比较搞笑了。不如计算出来
cxn1ce 发表于 2023-12-7 01:08
ssmss 发表于 2023-12-7 01:14
这就叫专业
邓贵林 发表于 2023-12-7 03:16
cxn1ce 发表于 2023-12-7 01:08
我还在学MySQ怎么搭建呢

啊?我也小白,你说的搭建主要是干什么的?目的是什么?
baoqingzxc 发表于 2023-12-7 06:57
最近刚开始研究MySQL数据库,进来学习一下!感谢大佬分享!
yzyangfan 发表于 2023-12-7 07:35
很好,很厉害~~~
jinqiaoa1a 发表于 2023-12-7 07:53
学习学习,感谢楼主
鹏路翱翔 发表于 2023-12-7 08:03
cxn1ce 发表于 2023-12-7 01:08
我还在学MySQ怎么搭建呢

有一键搭建~
luoyin168 发表于 2023-12-7 08:07
学习学习,感谢楼主
alanfish 发表于 2023-12-7 08:08

学习学习,感谢楼主
学习学习,感谢楼主
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表