目录
学员管理系统
第一步:定义类,注意在类中直接获取数据库连接和创建游标对象
# 定义学生信息表操作类
class StudentManager:
def __init__(self):
# 获取数据库连接
self.db = pymysql.connect(host="localhost", user="root", password="123456", db="jdbc", charset="utf8")
# 创建游标对象
self.cursor = self.db.cursor()
第二步:完成主菜单,注意主菜单的功能,大概有添加学员,删除学员,修改学员信息,查询学员信息,显示所有学员信息,自动保存学员信息,退出系统
while True:
print('请选择如下功能:')
print('1:添加学员')
print('2:删除学员')
print('3:修改学员信息')
print('4:查询学员信息')
print('5:显示所有学员信息')
print('7:自动保存学员信息')
print('8:退出系统')
第三步:定义触发机制,代码修改后在这里主要展示添加学员,显示学员信息以及自动保存学员信息的代码
key = input("请输入对应选择:")
if key == "5":
print("=" * 12, "学员信息浏览", "=" * 14)
StudentManager.show_student()
input("按回车继续")
elif key == "1":
print("=" * 12, "学员信息添加", "=" * 14)
stu = {}
stu['name'] = input("请输入要添加的学员姓名:")
stu['gender'] = input("请输入要添加的学员性别:")
stu['tel'] = input("请输入要添加的学员电话:")
StudentManager.add_student(stu['name'], stu['gender'], stu['tel'])
StudentManager.show_student()
input("按回车继续")
elif key == "7":
print("=" * 12, "自动保存学员信息", "=" * 14)
print("自动每秒保存数据到mysql数据库中")
StudentManager.save_student()
input("按回车继续")
第四步:定义功能函数,代码修改后在这里主要展示添加学员,显示学员信息以及自动保存学员信息功能函数的代码
# 定义信息查询函数
def show_student(self):
# 定义sql语句
sql = "select * from student"
try:
# 执行sql操作
self.cursor.execute(sql)
# 解析结果
while True:
data = self.cursor.fetchone()
if data == None:
break;
print(data)
except:
print("sql执行错误!")
# 定义添加学员信息函数
def add_student(self, name, gender, tel):
self.name = name
self.gender = gender
self.tel = tel
# 定义sql语句
sql = "insert into student (name,gender,tel) values('%s','%s','%s')" % (self.name, self.gender, self.tel)
try:
# 执行sql操作
self.cursor.execute(sql)
# 事务提交
self.db.commit()
except:
# 事务回滚
self.db.rollback()
print("sql执行错误!")
def save_student(self):
sql1 = "insert into student (name,gender,tel) values('李四','男','345')"
sql2 = "insert into student (name,gender,tel) values('王五','男','245')"
try:
# 执行sql操作
self.cursor.execute(sql1)
#每隔一秒自动保存一次数据
time.sleep(1)
self.cursor.execute(sql2)
# 事务提交
self.db.commit()
except:
# 事务回滚
self.db.rollback()
print("sql执行错误!")
第五步:创建类的实例对象
class Student(object):
def __init__(self, name, gender, tel):
# 姓名、性别、手机号
self.name = name
self.gender = gender
self.tel = tel
第六步:运行系统
# 1. 导入管理系统模块
from managerSystem import *
# 2. 启动管理系统
# 保证是当前文件运行才启动管理系统:if --创建对象并调用run方法
if __name__ == '__main__':
student_manager = StudentManager()
student_manager.run()
多线程的应用
多线程在本系统中的应用主要为编辑保存数据的函数让系统通过多线程的应用可以自动每秒保存数据到mysql数据库中
示例:
def save_student(self):
sql1 = "insert into student (name,gender,tel) values('李四','男','345')"
sql2 = "insert into student (name,gender,tel) values('王五','男','245')"
try:
# 执行sql操作
self.cursor.execute(sql1)
#每隔一秒自动保存一次数据
time.sleep(1)
self.cursor.execute(sql2)
# 事务提交
self.db.commit()
except:
# 事务回滚
self.db.rollback()
print("sql执行错误!")