编写图形界面应用程序实现学生信息的添加、查询和删除学生信息存储在MySQL数据库中如dstudentsdb文件。要求:1单击添加按钮可以将入框的学号、姓名、性别、年龄信息添加到数据库中。2单击查询根据学号查询对应数据库的学生的信息并显示在文本框。如不存在则弹出提示框。3单击删除根据学号删除该学生在数据库的信息。如该学号不存在则弹出提示框。4单击清除将文本框的内容清空。python
代码如下:
import tkinter as tk import pymysql
#连接数据库 conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test',charset='utf8') cursor = conn.cursor()
#创建表 sql_create_table = ''' CREATE TABLE IF NOT EXISTS students ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, gender varchar(10) NOT NULL, age int(11) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ''' cursor.execute(sql_create_table)
#添加学生信息 def add_student(): id = entry_id.get() name = entry_name.get() gender = entry_gender.get() age = entry_age.get() sql_add_student = "INSERT INTO students(name,gender,age) VALUES('{}','{}',{})".format(name,gender,age) cursor.execute(sql_add_student) conn.commit() clear_text() tk.messagebox.showinfo(title='添加成功', message='添加成功')
#查询学生信息 def query_student(): id = entry_id.get() sql_query_student = "SELECT name,gender,age FROM students WHERE id={}".format(id) cursor.execute(sql_query_student) result = cursor.fetchone() if result: entry_name.delete(0, tk.END) entry_name.insert(0, result[0]) entry_gender.delete(0, tk.END) entry_gender.insert(0, result[1]) entry_age.delete(0, tk.END) entry_age.insert(0, result[2]) else: tk.messagebox.showerror(title='查询失败', message='该学号不存在')
#删除学生信息 def delete_student(): id = entry_id.get() sql_delete_student = "DELETE FROM students WHERE id={}".format(id) result = cursor.execute(sql_delete_student) conn.commit() if result: clear_text() tk.messagebox.showinfo(title='删除成功', message='删除成功') else: tk.messagebox.showerror(title='删除失败', message='该学号不存在')
#清空文本框 def clear_text(): entry_id.delete(0, tk.END) entry_name.delete(0, tk.END) entry_gender.delete(0, tk.END) entry_age.delete(0, tk.END)
#创建窗口 win = tk.Tk() win.title('学生信息管理系统') win.geometry('300x200')
#添加控件 label_id = tk.Label(win, text='学号') label_id.grid(row=0, column=0, padx=5, pady=5) entry_id = tk.Entry(win) entry_id.grid(row=0, column=1, padx=5, pady=5)
label_name = tk.Label(win, text='姓名') label_name.grid(row=1, column=0, padx=5, pady=5) entry_name = tk.Entry(win) entry_name.grid(row=1, column=1, padx=5, pady=5)
label_gender = tk.Label(win, text='性别') label_gender.grid(row=2, column=0, padx=5, pady=5) entry_gender = tk.Entry(win) entry_gender.grid(row=2, column=1, padx=5, pady=5)
label_age = tk.Label(win, text='年龄') label_age.grid(row=3, column=0, padx=5, pady=5) entry_age = tk.Entry(win) entry_age.grid(row=3, column=1, padx=5, pady=5)
button_add = tk.Button(win, text='添加', command=add_student) button_add.grid(row=4, column=0, padx=5, pady=5)
button_query = tk.Button(win, text='查询', command=query_student) button_query.grid(row=4, column=1, padx=5, pady=5)
button_delete = tk.Button(win, text='删除', command=delete_student) button_delete.grid(row=4, column=2, padx=5, pady=5)
button_clear = tk.Button(win, text='清除', command=clear_text) button_clear.grid(row=4, column=3, padx=5, pady=5)
win.mainloop()
#关闭数据库连接 cursor.close() conn.close(
原文地址: http://www.cveoy.top/t/topic/gpbG 著作权归作者所有。请勿转载和采集!