python 管理系统实现mysql交互的示例代码
作者:墨渊 时间:2024-01-28 16:30:52
没配置的可以看一下我上一篇
地址
开启小皮
数据库text 数据库表 student 字段 student_no name age sex
效果图如下
增
删
查
改
用类的方法写了一下构造搞了半天 但搞出来了
修改那有个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()
来源:https://blog.csdn.net/qq_43233737/article/details/121625602
标签:python,管理系统,mysql交互
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python实战之画哆啦A梦(超详细步骤)
2021-05-16 14:36:47
![](https://img.aspxhome.com/file/2023/0/80480_0s.jpg)
python爬虫基础教程:requests库(二)代码实例
2023-05-31 07:56:35
django 连接数据库 sqlite的例子
2023-08-03 19:03:15
ie7.0浏览器 兼容问题苦煞网站设计者
2007-08-08 17:11:00
python的格式化输出(format,%)实例详解
2022-03-20 04:17:57
PHP htmlspecialchars()函数用法与实例讲解
2023-06-02 16:48:38
![](https://img.aspxhome.com/file/2023/2/55382_0s.png)
CSS鼠标悬停tip效果
2007-08-26 17:32:00
![](https://img.aspxhome.com/file/UploadPic/20078/26/200782618155189s.gif)
python代码如何注释
2021-08-16 20:46:29
GO的range具体使用
2023-07-21 03:27:27
前端面试之vue2和vue3的区别有哪些
2024-04-28 10:54:38
MySQL如何解决DOS窗口乱码问题
2024-01-22 11:44:56
![](https://img.aspxhome.com/file/2023/5/71045_0s.png)
简单介绍一下pyinstaller打包以及安全性的实现
2021-07-23 15:34:56
![](https://img.aspxhome.com/file/2023/8/78718_0s.png)
PyTorch 使用torchvision进行图片数据增广
2023-06-19 23:09:10
![](https://img.aspxhome.com/file/2023/3/92453_0s.jpg)
git中cherry-pick命令的使用教程
2023-02-11 00:33:57
Python-OpenCV基本操作方法详解
2021-11-25 20:40:01
![](https://img.aspxhome.com/file/2023/9/133479_0s.jpg)
SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞
2024-01-14 10:09:11
Python计算斗牛游戏概率算法实例分析
2021-08-08 09:52:21
学以致用 驳“ASP低能论”
2007-09-30 13:01:00
Python 如何给图像分类(图像识别模型构建)
2022-07-24 20:34:08
基于JS+Canvas的lucky-canvas 抽奖功能
2024-04-19 09:51:26
![](https://img.aspxhome.com/file/2023/5/136075_0s.webp)