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, "学生信息修改到数据库失败,请检查数据库"

 系统首页
请添加图片描述

请添加图片描述
请添加图片描述

需要全部代码请私信

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

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的PyQt学生信息管理系统的示例,包括添加、删除、修改和查询学生信息的功能: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidgetItem from PyQt5.QtSql import QSqlDatabase, QSqlQuery class StudentInfo(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('学生信息管理系统') self.resize(500, 400) # 创建表格 self.tableWidget = QtWidgets.QTableWidget(self) self.tableWidget.setGeometry(QtCore.QRect(10, 10, 480, 300)) self.tableWidget.setColumnCount(3) self.tableWidget.setHorizontalHeaderLabels(['学号', '姓名', '年龄']) # 创建按钮 self.addButton = QtWidgets.QPushButton('添加', self) self.addButton.setGeometry(QtCore.QRect(50, 330, 80, 30)) self.delButton = QtWidgets.QPushButton('删除', self) self.delButton.setGeometry(QtCore.QRect(150, 330, 80, 30)) self.modifyButton = QtWidgets.QPushButton('修改', self) self.modifyButton.setGeometry(QtCore.QRect(250, 330, 80, 30)) self.queryButton = QtWidgets.QPushButton('查询', self) self.queryButton.setGeometry(QtCore.QRect(350, 330, 80, 30)) # 绑定按钮事件 self.addButton.clicked.connect(self.addStudent) self.delButton.clicked.connect(self.delStudent) self.modifyButton.clicked.connect(self.modifyStudent) self.queryButton.clicked.connect(self.queryStudent) # 初始化数据库 self.db = QSqlDatabase.addDatabase('QSQLITE') self.db.setDatabaseName('student.db') self.db.open() # 添加学生信息 def addStudent(self): query = QSqlQuery() id = self.tableWidget.rowCount() + 1 name = '张三' age = 18 query.exec(f"INSERT INTO student VALUES ({id}, '{name}', {age})") self.queryStudent() # 删除学生信息 def delStudent(self): row = self.tableWidget.currentRow() id = self.tableWidget.item(row, 0).text() query = QSqlQuery() query.exec(f"DELETE FROM student WHERE id={id}") self.queryStudent() # 修改学生信息 def modifyStudent(self): row = self.tableWidget.currentRow() id = self.tableWidget.item(row, 0).text() name = '李四' age = 20 query = QSqlQuery() query.exec(f"UPDATE student SET name='{name}', age={age} WHERE id={id}") self.queryStudent() # 查询学生信息 def queryStudent(self): query = QSqlQuery() query.exec("SELECT * FROM student") self.tableWidget.setRowCount(0) while query.next(): row = self.tableWidget.rowCount() self.tableWidget.insertRow(row) for i in range(3): item = QTableWidgetItem(str(query.value(i))) self.tableWidget.setItem(row, i, item) if __name__ == '__main__': app = QApplication([]) window = StudentInfo() window.show() app.exec_() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值