python PyQt5 MySQL GUI 学生信息管理系统

学生信息管理系统

本系统使用python,pyqt5,数据库使用MySQL,实现windowsGUI应用。

python使用pymysql模块操作数据库代码

import pymysql


def handle_db(cmd, sql):
   result = None
   # print(f" sql {sql}")
   # 连接数据库
   conn = pymysql.connect(
       host='localhost',
       user='xxx',
       password='xxxxx',
       database='student_manager_system',
       port=3306,
       charset='utf8mb4'
   )
   # 创建游标
   cursor = conn.cursor()
   # 执行 SQL 语句
   cursor.execute(sql)
   # 获取查询结果
   if cmd == "select":
       result = cursor.fetchall()
       print(f"result db {result} {type(result)}")
   elif cmd == "insert":
       rowcount = cursor.rowcount
       if rowcount > 0:
           # print("插入成功!")
           result = True
       else:
           # print("插入失败!")
           result = False
       # 提交事务
       conn.commit()
   elif cmd == "delete":
       rowcount = cursor.rowcount
       if rowcount > 0:
           result = True
       else:
           result = False
       # 提交事务
       conn.commit()
   elif cmd == "update":
       rowcount = cursor.rowcount
       if rowcount > 0:
           result = True
       else:
           result = False
       # 提交事务
       conn.commit()
   # 关闭游标和连接
   cursor.close()
   conn.close()
   return result


def insert_data(arg):
   lineEdit, lineEdit2, lineEdit3, lineEdit4, lineEdit5, lineEdit6, lineEdit7 = arg

   # 检查学号是否重复
   check_sql = f"select * from student_manager where s_number={lineEdit2}"
   print(f"check sql is : {check_sql}")
   result = handle_db("select", check_sql)
   if result:
       return False, "学号重复"
   sql = f"insert into student_manager values ('{lineEdit}', '{lineEdit2}', '{lineEdit3}', " \
         f"'{lineEdit4}', '{lineEdit5}', '{lineEdit6}', '{lineEdit7}')"
   print(f"insert sql is : {sql}")
   result = handle_db("insert", sql)
   print(f"result {result}")
   if result:
       return True, ""
   else:
       return False, "学生信息插入到数据库失败,请检查数据库"


def select_data():
   sql = "select * from student_manager"
   print(f"select data sql is : {sql}")
   result = handle_db("select", sql)
   # print(f"result {result}")
   return result


def delete_data(num):
   sql = f"delete from student_manager where s_number='{num}'"
   print(f"delete data sql is : {sql}")
   result = handle_db("delete", sql)
   # print(f"result {result}")
   return result


def update_data(arg):
   lineEdit, lineEdit2, lineEdit3, lineEdit4, lineEdit5, lineEdit6, lineEdit7 = arg

   # 检查学号是否重复
   check_sql = f"select * from student_manager where s_number={lineEdit2}"
   print(f"check update sql is : {check_sql}")
   result = handle_db("select", check_sql)
   if not result:
       return False, "该学生学号不存在"

   sql = f"update student_manager set name='{lineEdit}', sex='{lineEdit3}', age='{lineEdit4}'," \
         f"grade='{lineEdit5}', class='{lineEdit6}', remark='{lineEdit7}' where s_number='{lineEdit2}'"
   print(f"update data sql is : {sql}")
   result = handle_db("update", sql)
   # print(f"result {result}")
   if result:
       return True, ""
   else:
       return False, "学生信息修改到数据库失败,请检查数据库"

python PyQt5 MySQL GUI 学生信息管理系统_第1张图片
python PyQt5 MySQL GUI 学生信息管理系统_第2张图片

python PyQt5 MySQL GUI 学生信息管理系统_第3张图片
python PyQt5 MySQL GUI 学生信息管理系统_第4张图片

需要全部代码请私信

少年易老学难成,一寸光阴不可轻。

你可能感兴趣的:(程序开发,python,mysql,pyqt)