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中__init__和__new__的区别详解
Jul 09 Python
Python实现删除Android工程中的冗余字符串
Jan 19 Python
Python实现生成简单的Makefile文件代码示例
Mar 10 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
使用python存储网页上的图片实例
May 22 Python
NumPy 数组使用大全
Apr 25 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
python类中super() 的使用解析
Dec 19 Python
python实现可下载音乐的音乐播放器
Feb 25 Python
Python3 类型标注支持操作
Jun 02 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
浅谈php扩展imagick
2014/06/02 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python实现大转盘抽奖效果
2019/01/22 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python对wav文件的重采样实例
2020/02/25 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
.net软件工程师面试题
2015/03/31 面试题
一些网络技术方面的面试题
2014/05/01 面试题
蜜蜂引路教学反思
2014/02/04 职场文书
大学生评语大全
2014/04/18 职场文书
学校食堂标语
2014/10/06 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
合作意向书范本
2019/04/17 职场文书