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之深入变量和引用对象
Sep 24 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 Python
python+pyqt实现12306图片验证效果
Oct 25 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
May 09 Python
Scrapy使用的基本流程与实例讲解
Oct 21 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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
删除无限级目录与文件代码共享
2006/07/12 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python ljust rjust center输出
2008/09/06 Python
Python列表生成器的循环技巧分享
2015/03/06 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python3实现windows下同名进程监控
2018/06/21 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
个人能力自我鉴赏
2014/01/25 职场文书
表彰先进的通报
2014/01/31 职场文书
员工晚婚的请假条
2014/02/08 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书