Python学生管理系统(三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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 
目录
相关文章
|
27天前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
25天前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
2月前
|
机器学习/深度学习 数据可视化 搜索推荐
基于python的汽车数据可视化、推荐及预测系统
本研究围绕汽车数据可视化、推荐及预测系统展开,结合大数据与人工智能技术,旨在提升用户体验与市场竞争力。内容涵盖研究背景、意义、相关技术如 Python、ECharts、协同过滤及随机森林回归等,探讨如何挖掘汽车数据价值,实现个性化推荐与智能预测,为汽车行业智能化发展提供支持。
|
2月前
|
存储 安全 数据管理
基于python的在线考试系统
本系统基于Python开发,旨在通过信息化手段提升各行业数据管理效率。系统具备良好的安全性、稳定性及可扩展性,支持数据高效处理与决策支持,适用于教育、医疗、旅游等多个领域,助力办公自动化与科学化管理,显著提升工作效率并降低错误率。
|
2月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
24天前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。

推荐镜像

更多