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中的推导式使用详解
Jun 03 Python
编写Python CGI脚本的教程
Jun 29 Python
Python循环语句之break与continue的用法
Oct 14 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python三大神器之fabric使用教程
Jun 10 Python
python实现生成Word、docx文件的方法分析
Aug 30 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
基于php伪静态的实现详细介绍
2013/04/28 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
php两种无限分类方法实例
2015/04/21 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
详解Django中的过滤器
2015/07/16 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
Python 私有函数的实例详解
2017/09/11 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python Gabor滤波器讲解
2020/10/26 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
求职简历自我评价范例
2014/03/12 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
数学复习课教学反思
2016/02/18 职场文书
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js