Python tkinter 实现页面跳转并向 MySQL 数据库添加学生信息
以下是一个简单的示例代码,其中包括两个页面,一个是主页面,另一个是添加学生信息页面。
import tkinter as tk
import mysql.connector
# 连接 MySQL 数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase"
)
# 创建游标
mycursor = mydb.cursor()
# 创建主页面类
class MainPage(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.createWidgets()
def createWidgets(self):
# 创建标签
self.titleLabel = tk.Label(self, text='学生信息管理系统', font=("Arial", 20))
self.titleLabel.grid(row=0, column=0, columnspan=2, pady=20)
self.nameLabel = tk.Label(self, text='姓名:')
self.nameLabel.grid(row=1, column=0, pady=10)
self.nameEntry = tk.Entry(self)
self.nameEntry.grid(row=1, column=1, pady=10)
self.ageLabel = tk.Label(self, text='年龄:')
self.ageLabel.grid(row=2, column=0, pady=10)
self.ageEntry = tk.Entry(self)
self.ageEntry.grid(row=2, column=1, pady=10)
self.genderLabel = tk.Label(self, text='性别:')
self.genderLabel.grid(row=3, column=0, pady=10)
self.genderEntry = tk.Entry(self)
self.genderEntry.grid(row=3, column=1, pady=10)
# 创建按钮
self.addButton = tk.Button(self, text='添加', command=self.addStudent)
self.addButton.grid(row=4, column=0, pady=20)
self.quitButton = tk.Button(self, text='退出', command=self.quit)
self.quitButton.grid(row=4, column=1, pady=20)
# 添加学生信息
def addStudent(self):
name = self.nameEntry.get()
age = self.ageEntry.get()
gender = self.genderEntry.get()
sql = "INSERT INTO students (name, age, gender) VALUES (%s, %s, %s)"
val = (name, age, gender)
mycursor.execute(sql, val)
mydb.commit()
self.nameEntry.delete(0, tk.END)
self.ageEntry.delete(0, tk.END)
self.genderEntry.delete(0, tk.END)
tk.messagebox.showinfo("提示", "学生信息添加成功!")
# 创建添加学生信息页面类
class AddStudentPage(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.createWidgets()
def createWidgets(self):
# 创建标签
self.titleLabel = tk.Label(self, text='添加学生信息', font=("Arial", 20))
self.titleLabel.grid(row=0, column=0, columnspan=2, pady=20)
self.nameLabel = tk.Label(self, text='姓名:')
self.nameLabel.grid(row=1, column=0, pady=10)
self.nameEntry = tk.Entry(self)
self.nameEntry.grid(row=1, column=1, pady=10)
self.ageLabel = tk.Label(self, text='年龄:')
self.ageLabel.grid(row=2, column=0, pady=10)
self.ageEntry = tk.Entry(self)
self.ageEntry.grid(row=2, column=1, pady=10)
self.genderLabel = tk.Label(self, text='性别:')
self.genderLabel.grid(row=3, column=0, pady=10)
self.genderEntry = tk.Entry(self)
self.genderEntry.grid(row=3, column=1, pady=10)
# 创建按钮
self.addButton = tk.Button(self, text='添加', command=self.addStudent)
self.addButton.grid(row=4, column=0, pady=20)
self.backButton = tk.Button(self, text='返回', command=self.back)
self.backButton.grid(row=4, column=1, pady=20)
# 添加学生信息
def addStudent(self):
name = self.nameEntry.get()
age = self.ageEntry.get()
gender = self.genderEntry.get()
sql = "INSERT INTO students (name, age, gender) VALUES (%s, %s, %s)"
val = (name, age, gender)
mycursor.execute(sql, val)
mydb.commit()
self.nameEntry.delete(0, tk.END)
self.ageEntry.delete(0, tk.END)
self.genderEntry.delete(0, tk.END)
tk.messagebox.showinfo("提示", "学生信息添加成功!")
# 返回主页面
def back(self):
self.destroy()
app = MainPage(root)
app.mainloop()
# 创建主窗口
root = tk.Tk()
root.title("学生信息管理系统")
root.geometry("400x300")
# 创建主页面
app = MainPage(root)
app.mainloop()
在本示例中,我们使用了 tkinter 模块来创建 GUI 界面,使用了 mysql.connector 模块来连接 MySQL 数据库。当用户在添加学生信息页面中点击添加按钮时,会向 MySQL 数据库中增加一条学生信息。同时,我们还创建了返回按钮,使用户可以返回主页面。
注意:
- 请将代码中的 "localhost", "root", "password" 和 "mydatabase" 替换为你的实际数据库配置信息。
- 请确保你已经创建了一个名为 "students" 的表,该表包含三个字段:"name", "age" 和 "gender"。
- 你可以根据自己的需要修改代码,例如添加更多字段或功能。
原文地址: https://www.cveoy.top/t/topic/omBx 著作权归作者所有。请勿转载和采集!