Python学生管理系统(三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Python学生管理系统(三)

Python的学生管理系统第三版——学生管理系统链接数据库(Mysql)!!!


今天带来一个新的python的一个库——pymysql(链接Mysql数据库)


如果对这个库有点陌生或者不熟练的我把这个库的教程放在下面,大家有时间可以去看看,如果有不会的或者哪个地方不太懂也可以直接和我讨论哦!!!


请看这里哦——pymysql使用学习。


接下来直接上代码了!!!!


import pymysql
name_list = []
#登录数据库
def get_connect():
    conn = pymysql.connect(host='localhost', user="root", passwd='自己的密码',database='stu')
    return conn
#主页面
def mune():
    print("-" * 30)
    print("   学生管理系统  v8.8  ")
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.修改学生信息")
    print("4.查询单个学生信息")
    print("5.查询所有学生信息")
    print("0.退出系统")
    print("-" * 30)
#获取序号
def xh():
    x = int(input('请输入序号:'))
    return x
#增加学生信息
def add_s():
    new_info = {}
    new_id = input('请输入学号:')
    new_info['学号'] = int(new_id)
    new_name  = input('请输入姓名:')
    new_info['姓名'] = new_name
    new_sex = input('请输入性别:')
    new_info['性别'] = new_sex
    new_ihpone = input('请输入电话号码:')
    new_info['电话'] = new_ihpone
    add_sql(new_info)
    name_list.append(new_info)
#删除学生信息
def del_s():
    del_id = int(input('请输入要删除的学生号: '))
    for i in range(len(name_list)):
        if name_list[i]['学号'] == del_id:
            name_list.pop(i)
            del_sql(del_id)
            break
    else:
            print('没有该学生! ')
def search_stu():
    name = input('请输入学生姓名:')
    for i in range(len(name_list)):
        if name_list[i]['姓名'] == name:
            print(name_list[i])
            search_sql(name)
            break
    else:
            print('查无此人!')
def x_lsit():
    print('*' * 10)
    print('1.修改姓名!')
    print('2.修改性别!')
    print('3.修改电话!')
    print('*' * 10)
    z = int(input('请输入功能序号:'))
    def x_id():
        id = int(input('请输入学号:'))
        name = input('请输入新姓名:')
        f = False
        for i in range(len(name_list)):
            if name_list[i]['学号'] == id :
                name_list[i]['姓名'] = name
                f =True
        if f == True:
            print('修改成功!')
        else:
            print('修改失败!')
        x_sql(1, id)
    def x_xb():
        id = int(input('请输入学号:'))
        sex_id = input('请输入新性别:')
        f = False
        for i in range(len(name_list)):
            if name_list[i]['学号'] == id:
                name_list[i]['性别'] = sex_id
                f = True
        if f == True:
            print('修改成功!')
        else:
            print('修改失败!')
        x_sql(2,id)
    def x_dh(z):
        id = int(input('请输入学号:'))
        dh_id = input('请输入新性别:')
        f = False
        for i in range(len(name_list)):
            if name_list[i]['学号'] == id:
                name_list[i]['电话'] = dh_id
                f = True
        if f == True:
            print('修改成功!')
        else:
            print('修改失败!')
        x_sql(3, id)
    if z == 1:
        x_id()
    elif z == 2:
        x_xb()
    elif z == 3 :
        x_dh()
#在数据库中增加学生信息
def add_sql(stu):
    connection = get_connect()
    cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
    sql = 'insert into student(学号,姓名,性别,电话) values("%s","%s","%s", "%s")'
    sid = stu['学号']
    name = stu['姓名']
    sex = stu['性别']
    iphone = stu['电话']
    try:
        cur.execute(sql%(sid,name,sex,iphone))
        connection.commit()
    except Exception as e:
        connection.rollback()
        raise e
    finally:
        connection.close()
#删除数据库中的学生信息
def del_sql(id):
            connection = get_connect()
            cur = connection.cursor()
            sql = 'delete from student where 学号 = %s '
            try:
                cur.execute(sql%id)
                connection.commit()
            except Exception as e:
                connection.rollback()
                raise e
            finally:
                connection.close()
#查询数据库中的单个
def search_sql(name):
    connection = get_connect()
    cur = connection.cursor()
    sql = 'select * from student where 姓名 ="%s"'
    cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
    cur.execute(sql%name)
    f = cur.fetchall()
    print(f)
    connection.commit()
    cur.close()
    connection.close()
#查询所有学生信息
def search_all():
    connection = get_connect()
    cur = connection.cursor()
    sql = 'select * from student ; '
    #转化字典通格式用
    cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
    cur.execute(sql)
    f = cur.fetchall()
    for i in f:
        # print(i)
        name_list.append(i)
    connection.commit()
    cur.close()
    connection.close()
#对数据库信息的修改
def x_sql(z,xsh):
    conn = pymysql.connect(host='localhost', user="root", passwd="自己的密码", database='数据库名称')
    cur = conn.cursor()
    def xname(xsh):
        # xh = int(input('学号:'))
        name = input('确认姓名:')
        arg = (name, xsh)
        sql = "update  student set 姓名 = '%s' where 学号 = %s "
        result = cur.execute(sql % arg)
        print(result)
        if result == 1:
            print('修改成功!')
        else:
            print('修改失败!')
        conn.commit()
        cur.close()
        conn.close()
    def xsex(xsh):
        # xh = int(input('学号:'))
        sex = input('确认性别:')
        arg = (sex, xsh)
        sql = "update  student set 性别 = '%s' where 学号 = %s "
        result = cur.execute(sql % arg)
        print(result)
        if result == 1:
            print('修改成功!')
        else:
            print('修改失败!')
        conn.commit()
        cur.close()
        conn.close()
    def xiphone(xsh):
        # xh = int(input('学号:'))
        iphone = int(input('确认新电话:'))
        arg = (iphone, xsh)
        sql = "update  student set 电话 = %s where 学号 = %s "
        result = cur.execute(sql % arg)
        if result == 1:
            print('修改成功!')
        else:
            print('修改失败!')
        conn.commit()
        cur.close()
        conn.close()
    def zhu(z):
        # n = int(input('请输入功能序号:'))
        if z == 1:
            xname(xsh)
        elif z == 2:
            xsex(xsh)
        elif z == 3:
            xiphone(xsh)
    zhu(z)
def main(x):
    if x == 1:
        add_s()
    elif x  ==2:
        del_s()
    elif x== 3 :
        x_lsit()
    elif x ==4:
        search_stu()
    elif x == 5:
       #search_all()
        for i in name_list:
            print(i)
search_all()
while 1:
 mune()
 x = xh()
 main(x)
 # print(name_list)
 if x ==0:
     break

虽然代码有点长还是不难理解的,这个是我一个月前写出来的,可能有些地方不是很完善,比如mysql的注入(应该解决了),非常希望大家来指正和谈论哦。


接下来看成果!!!

image.png


image.png


删除这个地方可以对比一下!!!!


image.png




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
3月前
|
机器学习/深度学习 监控 算法
基于mediapipe深度学习的手势数字识别系统python源码
本内容涵盖手势识别算法的相关资料,包括:1. 算法运行效果预览(无水印完整程序);2. 软件版本与配置环境说明,提供Python运行环境安装步骤;3. 部分核心代码,完整版含中文注释及操作视频;4. 算法理论概述,详解Mediapipe框架在手势识别中的应用。Mediapipe采用模块化设计,包含Calculator Graph、Packet和Subgraph等核心组件,支持实时处理任务,广泛应用于虚拟现实、智能监控等领域。
|
1月前
|
安全 JavaScript Java
Python中None与NoneType的真相:从单例对象到类型系统的深度解析
本文通过10个真实场景,深入解析Python中表示“空值”的None与NoneType。从单例模式、函数返回值,到类型注解、性能优化,全面揭示None在语言设计与实际编程中的核心作用,帮助开发者正确高效地处理“无值”状态,写出更健壮、清晰的Python代码。
134 3
|
6月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的商城管理系统源码+运行步骤
基于Python+Vue开发的商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
196 7
|
2月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。
|
前端开发 关系型数据库 MySQL
基于python“花开富贵”花园管理系统
感谢大学同学的陪伴与帮助,在我独立编写毕业论文期间,大学同学的鼓励与耐心的帮助使得我少走很多弯路,节省毕业论文的编写时间,也让我有更多精力去完善我开发的系统。 在整个系统开发过程中,我周围的同学和朋友给了我很多意见,所以我很快就确认了系统的商业思想。在次,我由衷的向他们表示感激。
38 0
|
5月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
161 6
|
5月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
89 9
|
5月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
128 3
|
5月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的摄影网上预约管理系统源码+运行
基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
93 8

热门文章

最新文章

推荐镜像

更多