(Python)tkinter连接MySQL进行学生数据管理

(Python)tkinter连接MySQL进行学生数据管理

要求界面格式

要求格式

数据库表格格式

数据库表格格式

数据库内容

https://download.csdn.net/download/BangLiSang/12419609

我其实不想付费的,但是没搞懂怎么免费分享……
自己建立数据库也可以

代码

import pymysql
import tkinter as tk
from tkinter import ttk
import tkinter.messagebox

win = tk.Tk()
win.geometry('1000x800')

numLabel = tk.Label(win, text='学号:').grid(row=0,column=0)
numStringvar = tk.StringVar()
numEntry = tk.Entry(win, width=20, textvariable=numStringvar).grid(row=0, column=1)

nameLabel = tk.Label(win, text='姓名:').grid(row=1,column=0)
nameStringvar = tk.StringVar()
nameEntry = tk.Entry(win, width=20, textvariable=nameStringvar).grid(row=1, column=1)

sexLabel = tk.Label(win, text='性别:').grid(row=2,column=0)
sexStringvar = tk.StringVar()
sexEntry = tk.Entry(win, width=20, textvariable=sexStringvar).grid(row=2, column=1)

birLabel = tk.Label(win, text='出生时间:').grid(row=3,column=0)
birStringvar = tk.StringVar()
birEntry = tk.Entry(win, width=20, textvariable=birStringvar).grid(row=3, column=1)

zhuanyeLabel = tk.Label(win, text='专业:').grid(row=4,column=0)
zhuanyeStringvar = tk.StringVar()
zhuanyeEntry = tk.Entry(win, width=20, textvariable=zhuanyeStringvar).grid(row=4, column=1)

xuefenLabel = tk.Label(win, text='总学分:').grid(row=5,column=0)
xuefenStringvar = tk.StringVar()
xuefenEntry = tk.Entry(win, width=20, textvariable=xuefenStringvar).grid(row=5, column=1)

beizhuLabel = tk.Label(win, text='备注:').grid(row=6,column=0)
beizhuStringvar = tk.StringVar()
beizhuEntry = tk.Entry(win, width=20, textvariable=beizhuStringvar).grid(row=6, column=1)

def select():
    xh = numStringvar.get()
    connection = pymysql.connect('localhost', 'root', '123456', 'test_mysql')
    cursor = connection.cursor()
    if len(xh) == 0:
        c = cursor.execute('select * from stu_mysql')
    else:
        print('select * from stu_mysql where 学号 like "%'+xh+'%"')
        c = cursor.execute('select * from stu_mysql where 学号 like "%'+xh+'%"')
    list_re = cursor.fetchall()
    x = tree.get_children()
    for item in x:
        tree.delete(item)
    for i in range(len(list_re)):
        tree.insert('', i, text=i, values=(list_re[i][0], list_re[i][1], list_re[i][2], list_re[i][3], list_re[i][4], list_re[i][5], list_re[i][6]))
    connection.close()
selectButton = tk.Button(win, text='查询', width=10, height=1,command=select).grid(row=7,column=0,pady=5)

def insert():
    connection = pymysql.connect('localhost', 'root', '123456', 'test_mysql')
    cursor = connection.cursor()
    cursor.execute('insert into stu_mysql values ("%s","%s","%s","%s","%s","%s","%s")' % (numStringvar.get(), nameStringvar.get(), sexStringvar.get(), birStringvar.get(), zhuanyeStringvar.get(), xuefenStringvar.get(), beizhuStringvar.get()))
    connection.commit()
    tree.insert('', 'end', value = [numStringvar.get(), nameStringvar.get(), sexStringvar.get(), birStringvar.get(), zhuanyeStringvar.get(), xuefenStringvar.get(), beizhuStringvar.get()])
    tk.messagebox.showinfo('提示', numStringvar.get() + '信息插入成功!')
    connection.close()  
insertButton = tk.Button(win, text='插入', width=10, height=1,command=insert).grid(row=7,column=1,pady=5)

def delete():
    xh = numStringvar.get()
    connection = pymysql.connect('localhost', 'root', '123456', 'test_mysql')
    cursor = connection.cursor()
    cursor.execute('delete from stu_mysql where 学号 = "' + xh + '"' )
    connection.commit()
    tk.messagebox.showinfo('提示', xh + '信息删除成功!')
    connection.close()  
deleteButton = tk.Button(win, text='删除', width=10, height=1,command=delete).grid(row=7,column=2,pady=5)

def clear():
    numStringvar.set('')
    nameStringvar.set('')
    sexStringvar.set('')
    birStringvar.set('')
    zhuanyeStringvar.set('')
    xuefenStringvar.set('')
    beizhuStringvar.set('')
clearButton = tk.Button(win, text='清空', width=10,height=1,command=clear).grid(row=7,column=3,pady=5)

tree = ttk.Treeview(win)
tree['column'] = ('学号','姓名','性别','出生时间','专业','总学分','备注')
tree.column('学号', width=100)
tree.column('姓名', width=100)
tree.column('性别', width=100)
tree.column('出生时间', width=100)
tree.column('专业', width=100)
tree.column('总学分', width=100)
tree.column('备注', width=100)
tree.heading('学号', text='学号')
tree.heading('姓名', text='姓名')
tree.heading('性别', text='性别')
tree.heading('出生时间', text='出生时间')
tree.heading('专业', text='专业')
tree.heading('总学分', text='总学分')
tree.heading('备注', text='备注')
tree.grid(row=8, column=0, columnspan=10)

win.mainloop()

效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值