python 利用GUI将输入的指定学号的学生的所有信息删除并且mysql也对该学生信息进行删除,并做出例子,不使用类也不创建类
时间: 2024-02-12 18:07:58 浏览: 25
好的,这里给你提供一个不使用类来实现的示例代码,它可以实现在GUI界面中输入指定学号的学生信息并将其从MySQL数据库中删除。
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton
import pymysql
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='test')
cur = conn.cursor()
# 查询所有学生信息
cur.execute('SELECT * FROM students')
students = cur.fetchall()
# 创建GUI窗口
app = QApplication(sys.argv)
window = QWidget()
window.setGeometry(300, 300, 400, 300)
window.setWindowTitle('删除学生信息')
# 添加标签和输入框
lbl = QLabel('请输入要删除的学生的学号:', window)
lbl.move(20, 20)
txt = QLineEdit(window)
txt.move(20, 50)
# 添加删除按钮
btn = QPushButton('删除', window)
btn.move(20, 80)
# 显示学生信息
for i, student in enumerate(students):
lbl = QLabel(window)
lbl.setText(f'{student[0]} {student[1]} {student[2]}')
lbl.move(20, 120 + i * 30)
# 删除学生信息函数
def deleteStudent():
# 获取要删除的学生的学号
student_id = int(txt.text())
# 删除MySQL数据库中的学生信息
cur.execute(f'DELETE FROM students WHERE id = {student_id}')
conn.commit()
# 更新界面中的学生信息
for child in window.children():
if isinstance(child, QLabel):
child.deleteLater()
cur.execute('SELECT * FROM students')
students = cur.fetchall()
for i, student in enumerate(students):
lbl = QLabel(window)
lbl.setText(f'{student[0]} {student[1]} {student[2]}')
lbl.move(20, 120 + i * 30)
# 绑定按钮点击事件
btn.clicked.connect(deleteStudent)
# 显示窗口
window.show()
sys.exit(app.exec_())
```
在这个示例代码中,我们首先连接MySQL数据库并获取所有学生的信息,然后创建了一个PyQt5应用程序并创建一个窗口。在窗口中,我们添加了一个标签和一个输入框用于输入要删除的学生的学号,还添加了一个删除按钮用于触发删除操作。同时,我们还在窗口中显示了所有学生的信息。最后,我们定义了一个deleteStudent()函数用于删除学生信息,并将该函数绑定到删除按钮的点击事件中。
总之,通过这个示例代码,你可以了解到如何使用PyQt5和PyMySQL库实现Python GUI程序中的MySQL数据库操作,同时还可以了解到如何在GUI程序中实现删除学生信息的功能。