python 管理系统实现mysql交互的示例代码


Posted in Python onDecember 06, 2021

开启小皮

python 管理系统实现mysql交互的示例代码

数据库text 数据库表 student 字段 student_no name age sex

python 管理系统实现mysql交互的示例代码

效果图如下

python 管理系统实现mysql交互的示例代码

python 管理系统实现mysql交互的示例代码

python 管理系统实现mysql交互的示例代码

python 管理系统实现mysql交互的示例代码

用类的方法写了一下构造搞了半天 但搞出来了
修改那有个bug 修改玩了还卡在那输入一个不存在的学号就退出当前 回到主页面了
写着复盘

'''
学生系统基本功能
增删查改
'''
import  pymysql
class Mysql(object):
	#初始化方法
    def __init__(self):
        self.db = pymysql.connect(
            host='localhost',
            user='root',
            password='123456789',
            port=3306,
            db='text'
        )
        self.cursor = self.db.cursor()
    # 添加
    def insert(self, name, age, sex):
        sql = "INSERT INTO student(name, age,sex) values(%s, %s, %s)"
        try:
            self.cursor.execute(sql, (name, age, sex))
            self.db.commit()
            print('插入成功')
        except:
            self.db.rollback()
            print('插入失败')
            self.db.close()
            pass
    #查询所有
    def select(self):
        sql = "select * from student "
        try:
            self.cursor.execute(sql)
            result = self.cursor.fetchall()
            self.db.commit()
            print(f'查询成功数据为:{result}')
        except:
            self.db.rollback()
            self.db.close()
            pass
    #查询单个
    def select_one(self,name):
        sql = "select name from student "
        try:
            self.cursor.execute(sql)
            result = self.cursor.fetchall()
            self.db.commit()
            print(f'查询成功数据为:{result}')
        except:
            self.db.rollback()
            self.db.close()
            pass
	修改那有个bug 修改玩了还卡在那输入一个不存在的学号就退出当前 回到主页面了
    # 修改
    def Revise(self, student_no, name, age):
        sql = "update student set name=%s,age=%s where student_no=%s"
        params = [name, age, student_no]
        try:
            self.cursor.execute(sql, (params))
            self.db.commit()
            print('修改成功')
            pass
        except:
            self.db.rollback()
            print('修改失败')
            self.db.close()
            pass
    #删除
    def del_Revise(self,student_no):
        sql = "delete from student where student_no=%s "
        params = [student_no]
        try:
            self.cursor.execute(sql,(params))
            self.db.commit()
            print('删除成功')
        except:
            self.db.rollback()
            print('删除失败')
            self.db.close()
            pass
#学生类
class Student():
    #初始化方法
    def __init__(self,name,age,sex):
        #添加属性
        self.name =name
        self.age =age
        self.sex =sex
class StudentManageSystem():
    def __init__(self):
        #定义一个列表
        self.student_list = list()
    #打印功能
    def show_menu(self):
        '''
        改函数是为了展示功能界面
        '''
        #1.显示系统的功能菜单
        print('-------学生管理系统1.0________')
        print('+-----------------------------+')
        print('|  1) 添加学生信息            |')
        print('|  2) 修改学生信息          |')
        print('|  3) 删除学生信息                  |')
        print('|  4) 显示所有学生                  |')
        print('|  5) 查询学生信息               |')
        print('|  6) 退出管理系统               |')
        print('+-----------------------------+')
    # 添加学生函数
    def add_student(self):
        name = input("请输入学生的姓名:")
        age = input("请输入学生的年龄:")
        sex = input("请输入学生的性别:")
        db.insert(name,age,sex)
        # 添加一个学生,需要自己创建一个学生对象
        stu = Student(name, age, sex)
        # 把对象添加到列表里面
        self.student_list.append(stu)
        #print(self.student_list)
        #print('添加成功')
    # 显示所有学生函数
    def show_all_student(self):
        db.select()
        for index, student in enumerate(self.student_list):
            student_no = index + 1
            print("学号:", student_no,
                  "姓名:", student.name,
                  "年龄:", student.age,
                  "性别:", student.sex
                  )
    # 修改学生信息函数
    def modify_student(self,student_no, name, age):
        # 1.接收用户输入的学号
        db.Revise(student_no,name,age)
        student_no = int(input("请输入要修改学生的学号:"))
        index = student_no - 1
        index = student_no
        student_no = index
        if 0 <= index < len(self.student_list):
            student = self.student_list[index]
            new_name = input("请输入修改后的姓名:")
            new_age = input("请输入修改后的年龄:")
            # new_sex = input("请输入修改后的性别:")
            student.name = new_name
            student.age = new_age
            # student.sex = new_sex
            name = new_name
            age = new_age
            # sex = new_sex
            #print("修改成功")
        else:
            print("请输入正确的学号:")
    # 删除学生信息
    def delete_student(self):
        try:
            student_no = int(input("请输入要删除学生的学号:"))
            db.del_Revise(student_no)
            # 2.将学号转换为下标
            index = student_no - 1
            if 0 <= index <= len(self.student_list):
                student = self.student_list.pop(index)
                print("%s,删除成功!" % student.name)
            else:
                print("请输入有效学号!")
        except:
            pass
    # 查询某个学生信息
    def query_student(self):
        name = input("请输入要查询学生的姓名:")
        db.select_one(name)
        for index, student in enumerate(self.student_list):
            student_no = index + 1
            if student.name == name:
                print("学号:", student_no,
                      "姓名:", student.name,
                      "年龄:", student.age,
                      "性别:", student.sex
                      )
                break
            else:
                print("对不起,没有该学生")
    # 程序入口函数,程序开始时第一个执行的函数
    def run(self):
        while True:
        # 1.显示系统功能菜单
            self.show_menu()
        # 2.接收用户输入的功能选项
            menu_option = input("请输入你要操作的功能选项:")
        # 3. 判断用户选择的指定功能,然后完成对应的操作(增删改查的功能)
            if menu_option == "1":
                print("添加学生信息")
                self.add_student()
            elif menu_option == "2":
                print("修改学生信息")
                student_no = int(input("请输入要修改学生的学号:"))
                name = input('请输入要修改学生的姓名:')
                age = input('请输入要修改学生的年龄:')
                self.modify_student(student_no, name, age)
            elif menu_option == "3":
                print("删除学生信息")
                self.delete_student()
            elif menu_option == "4":
                print("显示学生信息")
                self.show_all_student()
            elif menu_option == "5":
                print("查询学生信息")
                self.query_student()
            else:
                print("程序退出")
                break
if __name__ == '__main__':
    db = Mysql()
    system = StudentManageSystem()
    #程序入口方法
    system.run()

到此这篇关于python 管理系统实现mysql交互的文章就介绍到这了,更多相关python 管理系统mysql交互内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python编写生成验证码的脚本的教程
May 04 Python
浅谈python多线程和队列管理shell程序
Aug 04 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
Python使用当前时间、随机数产生一个唯一数字的方法
Sep 18 Python
对python-3-print重定向输出的几种方法总结
May 11 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
在python里创建一个任务(Task)实例
Apr 25 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
python中time.ctime()实例用法
Feb 03 Python
Python中super().__init__()测试以及理解
Dec 06 #Python
浅析Python中的随机采样和概率分布
Dec 06 #Python
python程序的组织结构详解
Python中异常处理用法
Nov 27 #Python
python中的3种定义类方法
Nov 27 #Python
5道关于python基础 while循环练习题
Nov 27 #Python
Python中的pprint模块
Nov 27 #Python
You might like
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
js读取配置文件自写
2014/02/11 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
应届毕业生自我鉴定范文
2013/12/27 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
js作用域及作用域链工作引擎
2022/07/07 Javascript