python+mysql的学生管理系统

这篇具有很好参考价值的文章主要介绍了python+mysql的学生管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、项目所需模块

2、学生管理系统的主要功能

3、首先创建数据库

4、防止数据库断开操作

5、菜单

6、编写主函数

7、添加学生信息

8、删除学生信息

9、修改学生信息

10、查看学生信息

11、展示所有学生信息

12、最后就是调用主函数


1、项目所需模块

编写这个学生管理系统需要使用pymysql这个库去连接数据库

2、学生管理系统的主要功能

这个学生管理系统我做的很简陋,只做了增删改查和展示所有学生信息5个模块,大家可以做得更详细一点增加其他的功能模块,在这里仅供大家参考,希望能给刚开始学习python的同学一点参考

3、首先创建数据库

import pymysql
#定义数据库连接参数
host = '127.0.0.1'
port = 3306
db = 'student'
user = 'root'
password = 'root'
#创建连接
con = pymysql.connect(host=host,
                      port=port,
                      db=db,
                      user=user,
                      password=password)
#创建游标对象
cur = con.cursor()
#编写sql语句
sql = """
      create table if not exists students(
      ids varchar(20) not null primary key,
      name varchar(30) not null,
      age int(2),
      gender varchar(10) not null,
      classes varchar(200) not null
      )
"""
try:
    #执行sql语句
    cur.execute(sql)
    print('创建成功')
except Exception as e:
    print(e)
    print('创表失败')
finally:
    #关闭连接
    con.close()

4、防止数据库断开操作

#数据库自动检测是否断开并自动连接
def select_db():
    # 检查连接是否断开,如果断开就进行重连
    con.ping(reconnect=True)
    cur.execute(sql)
    # 使用 fetchall() 获取查询结果
    data = cur.fetchall()
    return data

5、菜单

#菜单
def menu():
    print("1.增加学生信息")
    print("2.删除学生信息")
    print("3.查找学生信息")
    print("4.修改学生信息")
    print("5.展示所有学生信息")
    print("0.退出系统")
    choose = input("请输入你的操作:")
    return choose

6、编写主函数

#定义主函数
def main():

    print("+----------------------------------------+")
    print("|          欢迎进入学生管理系统                |")
    print("+----------------------------------------+")
    while True:
        choose = menu()
        #增加学生信息
        if choose == '1':
            add()
        #删除学生信息
        elif choose == '2':
            delete()
        #查找学生信息
        elif choose == '3':
            fund()
        #改变学生信息
        elif choose == '4':
            amend()
        #展示所有学生信息
        elif choose == '5':
            show()
        elif choose == '0':
            print("你已退出学生管理系统!!!!")
        #非法输入
        else:
            print("输入错误,请冲向输入!!")

7、添加学生信息

#添加学生信息
def add():
    select_db()
    #创建游标对象
    cur = con.cursor(pymysql.cursors.SSCursor)
    print("增加学生信息开始")
    while True:
        try:
            ids = input("请输入学号:")
            name = input("请输入学生姓名:")
            age = input("亲输入学生年龄")
            gender = input("请输入学生性别:")
            classes = input("请输入学生班级:")
            values = [ids, name, age, gender, classes]
            if gender not in ("男", "女"):
                print("输入错误,请输入男或女!")
            # 执行sql,将数据录入数据库
            sql = 'insert into students(ids,name,age,gender,classes) values(%s,%s,%s,%s,%s)'
            cur.execute(sql, values)
            if True:
                # 提交事务
                con.commit()
                print('添加学生信息成功')
                answer = input('是否继续添加学生信息:“yes"or"no"\n')
                if answer != 'yes':
                    break
                else:
                    continue
        except Exception as e:
            print(e)
            # 数据回滚,保护数据库
            con.rollback()
            print('添加学生信息失败')
        finally:
            print("[增加学生信息结束]")
    con.close()
 

8、删除学生信息

#删除学生信息
def delete():
    select_db()
    # 创建游标对象
    cur = con.cursor(pymysql.cursors.SSCursor)
    print("删除学生信息开始")
    while True:
        try:
            ids = input("请输入你要删除的学生学号:")
            sql = 'delete from students where ids=%s'
            con.commit()
            # 执行sql将数据从数据库中删除
            cur.execute(sql, ids)
            if True:
                # 提交事务
                con.commit()
                print('删除学生信息成功')
                answer = input('是否继续删除学生信息:“yes"or"no"')
                if answer != 'yes':
                    break
                else:
                    continue
        except:
            # 数据回滚,保护数据库
            con.rollback()
            print('删除学生信息失败')
        finally:
            print("删除学生信息结束")
    con.close()

9、修改学生信息

#修改学生信息
def amend():
    select_db()
    # 创建游标对象
    cur = con.cursor(pymysql.cursors.SSCursor)
    print("修改学生信息开始")
    while True:
        ids = input("请输入你要修改信息学生的学号:")
        if ids != '':
           name = input("请输入你要修改信息学生的姓名:")
           age = input("请输入你要修改信息学生的年龄:")
           gender = input("请输入你要修改信息学生的性别:")
           classes = input("请输入你要修改信息学生的班级:")
           try:
               sql = f'update students set ids={ids},name={name},age={age},gender={gender},classes={classes}'
               #执行sql,修改数据库数据
               cur.execute(sql)
               con.commit()
           except:
               print("修改失败")
               con.rollback()
           finally:
               print("修改学生信息结束")
           answer = input('是否继续修改学生信息:”yes“or"no"')
           if answer != 'yes':
               break
           else:
               continue
        else:
            print('输入错误请重新输入')
            continue
        con.close()

10、查看学生信息

#查找学生信息
def fund():
    select_db()
    # 创建游标对象
    cur = con.cursor(pymysql.cursors.SSCursor)
    print("查找学生信息开始")
    while True:
        try:
            mode = input('按学号查找请输入:1,按姓名查找请输入:2')
            if mode =='1':
                ids = input("请输入你需要查找到学生学号:")
                sql = 'select from students where ids=%s'
                cur.execute(sql, ids)
                con.commit()
                print(cur.fetchall())
                answer = input('是否继续查找学生信息:”yes“or”no“')
                if answer != 'yes':
                    break
                else:
                    continue
            elif mode == '2':
                name = input("请输入你需要查找的学生姓名:")
                sql = 'select from students where name=%s'
                cur.execute(sql, name)
                con.commit()
                print(cur.fetchall())
                answer = input('是否继续查找学生信息:”yes“or”no“')
                if answer != 'yes':
                    break
                else:
                    continue
            else:
                print("你的输入有误,请重新输入")
                continue
        except:
            # 数据回滚,保护数据库
            con.rollback()
        finally:
            print("查询学生信息结束")
    con.close()

11、展示所有学生信息

def show():
    select_db()
    # 创建游标对象
    cur = con.cursor(pymysql.cursors.SSCursor)
    sql = f'select * from students'
    cur.execute(sql)
    all = cur.fetchall()
    # print(len(all), type(all))
    format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}'
    print(format_title.format('ID', '姓名', '性别', '年龄'))
    format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}'
    for record in all:
        print(format_data.format(record[0], record[1], record[2], record[3]))
    con.close()

12、最后就是调用主函数

if __name__ == '__main__':
    main()

我把所有代码都放在这里了,里面也都有详细注释,大家应该都能看懂,希望我的这篇发文能够帮助那些还在学习python的同学,这只是一个很基础的小项目,希望大家能都自己都能跑一下代码感受一下,今天的分享就到此为止了,谢谢大家。文章来源地址https://www.toymoban.com/news/detail-488379.html

到了这里,关于python+mysql的学生管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (附源码)python+mysql+基于python的学生成绩管理系统 毕业设计071143

    Django学生成绩管理 摘 要 在国家重视教育影响下,教育部门的密确配合下,对教育进行改革、多样性、质量等等的要求,使教育系统的管理和运营比过去十年前更加理性化。依照这一现实为基础,设计一个快捷而又方便的线上学生成绩管理系统是一项十分重要并且有价值的事

    2024年02月04日
    浏览(57)
  • 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)

    1、项目说明 基于python+Flask+mysql的学生信息管理系统项目实战 项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块 创建数据库名称db_online_notes,然后执行sql文件生成数据表和数据 项目需要安装 flask,pymysql以及其他的一些模块 安装命令如下: pip install -i https://pypi

    2023年04月18日
    浏览(40)
  • python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~

    1、系统说明 python 编写的学生信息管理系统+MySQL数据库,实现了增删改查的基本功能。 2、数据库说明 本人使用的是 MySQL8.0 版本 数据库端口号为:3306 数据库用户名是:root 数据库名称是:practice 建立的表是:students 3、系统功能 增加学生信息 删除学生信息 修改学生信息 查

    2024年02月11日
    浏览(54)
  • python Web开发 flask轻量级Web框架实战项目--学生管理系统

     上次发的一篇文章,有很多朋友私信我要后面的部分,那咱们就今天来一起学习一下吧,因为我的数据库这门课选中的课题是学生管理系统,所以今天就以这个课题为例子,从0到1去实现一个管理系统。数据库设计部分我会专门出一个博客的,敬请期待吧~~~ 介如很多朋友问

    2024年02月16日
    浏览(62)
  • java 学生信息管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一、源码特点     java 学生信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java 学生信息管理系统 二、

    2024年02月09日
    浏览(56)
  • 学生管理系统(MySQL版)

    学号 姓名 性 别 年龄 班级 专业 学院 电话 2021001 李晓红 女 30 2021级软件4班 软件技术 人工智能与大数据学院 15945456780 2021002 王晓刚 男 18 2021级软件4班 软件技术 人工智能与大数据学院 13890904567 2021003 唐雨涵 女 19 2021级软件4班 软件技术 人工智能与大数据学院 18878789023 202110

    2024年02月08日
    浏览(32)
  • mysql 学生信息管理系统

    一、分析 ①业务分析: 学生信息管理系统是面向学生和学校教师的一个多功能数据管理平台 ②系统分析: 本系统所涉及到的用户有学校学生和教师,对于不同的用户系统所提供的功能也有所不同,其中对于学生来说,学生可以提供该系统进行自身数据的查询,教师可以通过

    2024年02月10日
    浏览(35)
  • QT项目-学生管理系统

      本文章主要讲解本人在QT学习期间所开发的项目-学生管理系统,代码主要参考于网上查找。  功能主要包括,学生信息的插入删除,以及修改。 再加上按照id,或者成绩的升降序排序 1.pro 2.widget.h 3. main.cpp 4.widget.cpp 5.widget.ui 总结 项目处于学习阶段所做,参考了一些网络上

    2024年02月12日
    浏览(41)
  • Vue项目:学生管理系统

    💂 个人主页:  陶然同学 🤟 版权:  本文由【陶然同学】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、 欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 💅  想寻找共同成长的小伙伴,请点击【 Java全栈开发社区 】 步骤1:设置导航  步骤2:添加路由 步

    2024年02月02日
    浏览(41)
  • 学生管理系统-01项目简介

    一、项目简介 项目名称:学生管理系统 项目功能 用户管理 用户登录 用户的注册 用户增加 用户删除 用户的修改 学生管理 用户的列表渲染 用户的分页操作 用户的搜索 用户的增加 用户删除 用户编辑 excel报表的导出 班级管理 专业管理 班主任管理 教师管理 课程管理 可视化

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包