import pymysql.cursors from tkinter import ttk import tkinter as tk import tkinter.font as tkFont from tkinter import * import tkinter.messagebox as messagebox import time class logincheck: def __init__(self,parent_window): parent_window.update() parent_window.destroy() self.window=tk.Tk() self.window.title("登录界面") self.window.geometry('700x600+70+50') def getTime(): timeStr=time.strftime('%H:%M:%S') Rtime.configure(text=timeStr) self.window.after(1000, getTime) Rtime= Label(self.window,text='') Rtime.pack(pady=25) getTime() label = Label(self.window, text="新一佳仓储商品管理系统登录", font=("楷体", 30)) label.pack(pady=10) self.var_username=StringVar() self.var_pwd=StringVar() self.right_top_username_label = Label(text="用户名:", font=('楷体', 15)).pack(pady=15) self.right_top_username_entry = Entry(textvariable=self.var_username, font=('楷体', 15)).pack() self.right_top_pwd_label = Label(text="密码:", font=('楷体', 15)).pack(pady=15) self.right_top_pwd_entry = Entry(textvariable=self.var_pwd, font=('楷体', 15)).pack() self.right_top_button1 = ttk.Button(text='确定', width=20, command=self.new_row).pack(pady=30) self.right_top_button2 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) self.username=[] self.pwd=[] self.window.mainloop() db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "SELECT * FROM 用户登录 WHERE 用户名='%s'"%(self.var_username.get()) try: cursor.execute(sql) results = cursor.fetchall() for row in results: self.username.append(row[0]) self.pwd.append(row[1]) except: print("Error: unable to fetch data") messagebox.showinfo('警告!', '数据库连接失败!') db.close() def back(self): self.window.destroy() def new_row(self): if self.var_username.get() != '' and self.var_pwd.get() != '' and self.var_username.get()=='test' and self.var_pwd.get()=='123': db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor= db.cursor() sql = "SELECT * FROM 用户登录 WHERE 用户名='%s'"%(self.var_username.get()) try: cursor.execute(sql) startpage(self.window) except: db.rollback() messagebox.showinfo('警告!', '数据库连接失败!') db.close() else: messagebox.showinfo('提示!', '请填写正确的用户信息') class startpage: def __init__(self,parent_window): parent_window.update() parent_window.destroy() self.window=tk.Tk() self.window.title("新一佳仓储商品管理系统") self.window.geometry('1200x600+70+50') def getTime(): timeStr=time.strftime('%H:%M:%S') Rtime.configure(text=timeStr) self.window.after(1000, getTime) Rtime= Label(self.window,text='') Rtime.pack(pady=25) getTime() label= Label(self.window,text="新一佳仓储商品管理系统",font=("楷体",30)) label.pack(pady=10) Button(self.window,text="添加商品",font=tkFont.Font(size=16),command=lambda: xinjian(self.window),width=20,height=2,fg='white',bg='gray').place(x=100,y=300) Button(self.window,text="依据编号查询",font=tkFont.Font(size=16), command=lambda: cangkucha(self.window), width=20,height=2, fg='white', bg='gray').place(x=400, y=300) Button(self.window, text="商品出库", font=tkFont.Font(size=16), command=lambda:shanchu(self.window), width=20,height = 2, fg = 'white', bg = 'gray').place(x=100, y=400) Button(self.window, text="退出系统", font=tkFont.Font(size=16), command=self.window.destroy, width=20,height=2, fg='white', bg='gray').place(x=700, y=700) Button(self.window, text="修改商品信息", font=tkFont.Font(size=16), command=lambda:xiugai(self.window),width=20,height=2,fg='white',bg='gray').place(x=700,y=300) Button(self.window, text="依据商品名查询", font=tkFont.Font(size=16), command=lambda:cangkucha2(self.window), width=20,height=2, fg='white', bg='gray').place(x=400, y=400) self.window.mainloop() class xinjian: def __init__(self,parent_window): parent_window.destroy() self.window=tk.Tk() self.window.title("添加商品") self.window.geometry('700x600+70+50') self.top_title=Label(self.window,text="添加商品",bg='SkyBlue', font=('楷体', 20), width=70, height=2) self.top_title.pack() self.var_id = StringVar() self.var_name = StringVar() self.var_gender = StringVar() self.var_age = StringVar() self.var_num = StringVar() self.right_top_id_label = Label(text="商品编号:", font=('楷体', 15)).pack(pady=15) self.right_top_id_entry = Entry(textvariable=self.var_id, font=('楷体', 15)).pack() self.right_top_name_label =Label(text="商品名:", font=('楷体', 15)).pack(pady=15) self.right_top_name_entry = Entry(textvariable=self.var_name, font=('楷体', 15)).pack() self.right_top_gender_label = Label(text="商品类别:", font=('楷体', 15)).pack(pady=15) self.right_top_gender_entry = Entry(textvariable=self.var_gender, font=('楷体', 15)).pack() self.right_top_age_label = Label(text="商品数量:", font=('楷体', 15)).pack(pady=15) self.right_top_age_entry = Entry(textvariable=self.var_age, font=('楷体', 15)).pack() self.right_top_num_label = Label(text="商品供应商:",font=('楷体',15)).pack(pady=15) self.right_top_num_entry = Entry(textvariable=self.var_num, font=('楷体', 15)).pack() self.right_top_button1 = ttk.Button(text='确定', width=20, command=self.new_row).pack(pady=30) self.right_top_button2 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) # 捕捉右上角关闭点击 self.id=[] self.name=[] self.gender=[] self.age=[] self.num=[] db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "SELECT * FROM 商品表" try: cursor.execute(sql) results=cursor.fetchall() for row in results: self.id.append(row[0]) self.name.append(row[1]) self.gender.append(row[2]) self.age.append(row[3]) self.num.append(row[4]) except: print("Error: unable to fetch data") messagebox.showinfo('警告!', '数据库连接失败!') db.close() def back(self): startpage(self.window) def new_row(self): if self.var_id.get() != '' and self.var_name.get() != '' and self.var_gender.get() != '' and self.var_age.get() != '': db=pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() # 使用cursor()方法获取操作游标 sql= "INSERT INTO 商品表(商品编号,商品名,商品类别,商品数量,商品供应商) VALUES('%s','%s','%s','%s','%s')"%(self.var_id.get(), self.var_name.get(),self.var_gender.get(), self.var_age.get(), self.var_num.get()) try: cursor.execute(sql) db.commit() messagebox.showinfo('提示!', '添加成功!') except: db.rollback() messagebox.showinfo('警告!', '数据库连接失败!') db.close() else: messagebox.showinfo('提示!', '请填写客户信息') class kehudan: def __init__(self,parent_window): parent_window.destroy() # 销毁子界面 self.window = tk.Tk() self.window.title('商品清单') self.window.geometry('1200x600+70+50') db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() # 使用cursor()方法获取操作游标 sql = "SELECT * FROM 商品表" try: cursor.execute(sql) # 执行sql语句 results = cursor.fetchall() for row in results: self.id = '商品编号: ' + row[0] self.name = '商品名: ' + row[1] self.gender = '商品类别: ' + row[2] self.age = '商品数量: ' + row[3] self.num = '商品供应商:' + row[4] db.commit() Label(self.window, text=self.id + "\t" + self.name + "\t" + self.gender + "\t" +self.age + "\t" +self.num, font=('楷体', 18)).pack(pady=5) except: db.rollback() # 发生错误时回滚 messagebox.showinfo('警告!', '数据库连接失败!') db.close() # 关闭数据库连接 self.right_top_button4 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) def back(self): cangkucha(self.window) class cangkucha: def __init__(self, parent_window): parent_window.destroy() self.window = tk.Tk() self.window.title('依据商品编号查询') self.window.geometry('700x600+70+50') self.student_id = StringVar() self.id = '商品编号:' + '' self.name = '商品名:' + '' self.gender = '商品类别:' + '' self.age = '商品数量:' + '' self.num = '商品供应商:' + '' Button(self.window, text="商品清单", font=tkFont.Font(size=12), command=lambda: kehudan(self.window), width=20, height=2, fg='white', bg='gray').place(x=20, y=70) self.right_top_name_label = Label(text="商品查询", font=('楷体', 15)).pack(pady=15) self.right_top_name_entry = Entry(textvariable=self.student_id, font=('楷体', 15)).pack(pady=30) self.right_top_button3 = ttk.Button(text='确定', width=20, command=self.new_row).pack(pady=30) self.right_top_button4 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "SELECT * FROM 商品表 WHERE 商品编号='%s'" % (self.student_id.get()) # SQL 查询语句 try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: self.id = '商品编号:' + row[0] self.name = '商品名:' + row[1] self.gender = '商品类别:' + row[2] self.age = '商品数量:' + row[3] self.num ='商品供应商:' + row[4] except: print("Error: unable to fetch data") db.close() def back(self): startpage(self.window) def new_row(self): if self.student_id.get() != '': db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "SELECT * FROM 商品表 where 商品编号 = '%s'" % (self.student_id.get()) # SQL 插入语句 try: cursor.execute(sql) results = cursor.fetchall() for row in results: self.id = '商品编号:' + row[0] self.name = '商品名:' + row[1] self.gender = '商品类别:' + row[2] self.age = '商品数量:' + row[3] self.num ='商品供应商:' + row[4] db.commit() label = tk.Label(self.window, text='商品信息查看', bg='SkyBlue', font=('楷体', 20), width=70, height=2) label.pack(pady=20) Label(self.window, text=self.id, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.name, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.gender, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.age, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.num, font=('楷体', 18)).pack(pady=5) Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back_1).pack(pady=150) self.window.protocol("WM_DELETE_WINDOW", self.back_1) self.window.mainloop() except: db.rollback() messagebox.showinfo('提示', '数据库连接失败!') db.close() else: messagebox.showinfo('提示', '请填写商品信息!') def back_1(self): cangkucha(self.window) class cangkucha2: def __init__(self, parent_window): parent_window.destroy() self.window = tk.Tk() self.window.title('依据商品名查询') self.window.geometry('700x600+70+50') self.student_id = StringVar() self.student_name = StringVar() self.id = '商品编号:' + '' self.name = '商品名:' + '' self.gender = '商品类别:' + '' self.age = '商品数量:' + '' self.num = '商品供应商:' + '' Button(self.window, text="商品清单", font=tkFont.Font(size=12), command=lambda: kehudan(self.window), width=20, height=2, fg='white', bg='gray').place(x=20, y=70) self.right_top_name_label = Label(text="商品查询", font=('楷体', 15)).pack(pady=15) self.right_top_name_entry = Entry(text="商品编号", textvariable=self.student_name, font=('楷体', 15)).pack(pady=30) self.right_top_button3 = ttk.Button(text='确定', width=20, command=self.new_row).pack(pady=30) self.right_top_button4 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "SELECT * FROM 商品表 WHERE 商品名='%s'" % (self.student_name.get()) # SQL 查询语句 try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: self.id = '商品编号:' + row[0] self.name = '商品名:' + row[1] self.gender = '商品类别:' + row[2] self.age = '商品数量:' + row[3] self.num ='商品供应商:' + row[4] except: print("Error: unable to fetch data") db.close() def back(self): startpage(self.window) def new_row(self): if self.student_name.get() != '': db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "SELECT * FROM 商品表 where 商品名 = '%s'" % (self.student_name.get()) # SQL 插入语句 try: cursor.execute(sql) results = cursor.fetchall() for row in results: self.id = '商品编号:' + row[0] self.name = '商品名:' + row[1] self.gender = '商品类别:' + row[2] self.age = '商品数量:' + row[3] self.num ='商品供应商:' + row[4] db.commit() label = tk.Label(self.window, text='商品信息查看', bg='SkyBlue', font=('楷体', 20), width=70, height=2) label.pack(pady=20) Label(self.window, text=self.id, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.name, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.gender, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.age, font=('楷体', 18)).pack(pady=5) Label(self.window, text=self.num, font=('楷体', 18)).pack(pady=5) Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back_1).pack(pady=150) self.window.protocol("WM_DELETE_WINDOW", self.back_1) self.window.mainloop() except: db.rollback() messagebox.showinfo('提示', '数据库连接失败!') db.close() else: messagebox.showinfo('提示', '请填写商品信息!') def back_1(self): cangkucha2(self.window) class shanchu: def __init__(self,parent_window): parent_window.destroy() self.window = tk.Tk() self.window.title('删除表') self.window.geometry('700x600+70+50') self.top_title = Label(self.window, text='删除', bg='SkyBlue', font=('楷体', 20), width=70, height=2) self.top_title.pack() self.var_id = StringVar() self.var_name = StringVar() self.var_gender = StringVar() self.var_age = StringVar() self.var_num= StringVar() self.right_top_id_label = Label(text="商品编号", font=('楷体', 15)).pack(pady=15) self.right_top_id_entry = Entry(textvariable=self.var_id, font=('楷体', 15)).pack() self.right_top_button1 = ttk.Button(text='确定', width=20, command=self.new_row).pack(pady=30) self.right_top_button2 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) self.id = [] self.name = [] self.gender = [] self.age = [] self.num= [] # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() # 使用cursor()方法获取操作游标 sql = "SELECT * FROM 商品表" # SQL 查询语句 try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: self.id.append(row[0]) self.name.append(row[1]) self.gender.append(row[2]) self.age.append(row[3]) self.num.append(row[4]) except: print("Error: unable to fetch data") messagebox.showinfo('提示', '数据库连接失败!') db.close() def back(self): startpage(self.window) def new_row(self): if self.var_id.get() != '': db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "DELETE FROM 商品表 WHERE 商品编号 = '%s'" % (self.var_id.get()) try: cursor.execute(sql) db.commit() messagebox.showinfo('提示!', '删除成功!') except: db.rollback() messagebox.showinfo('警告!', '数据库连接失败!') db.close() else: messagebox.showinfo('警告!', '填写删除信息') class xiugai: def __init__(self,parent_window): parent_window.destroy() self.window = tk.Tk() self.window.title('修改信息') self.window.geometry('700x600+70+50') self.top_title = Label(self.window, text='修改信息', bg='SkyBlue', font=('楷体', 20), width=70, height=2) self.top_title.pack() self.var_id = StringVar() self.var_name = StringVar() self.var_gender = StringVar() self.var_age = StringVar() self.var_num = StringVar() self.right_top_id_label = Label(text="商品编号", font=('楷体', 15)).pack(pady=15) self.right_top_id_entry = Entry(textvariable=self.var_id, font=('楷体', 15)).pack() self.right_top_name_label = Label(text="商品名", font=('楷体', 15)).pack(pady=15) self.right_top_name_entry = Entry(textvariable=self.var_name, font=('楷体', 15)).pack() self.right_top_gender_label = Label(text="商品类别", font=('楷体', 15)).pack(pady=15) self.right_top_gender_entry = Entry(textvariable=self.var_gender, font=('楷体', 15)).pack() self.right_top_age_label = Label(text="商品数量", font=('楷体', 15)).pack(pady=15) self.right_top_age_entry = Entry(textvariable=self.var_age, font=('楷体', 15)).pack() self.right_top_num_label = Label(text="商品供应商", font=('楷体', 15)).pack(pady=15) self.right_top_num_entry = Entry(textvariable=self.var_num, font=('楷体', 15)).pack() self.right_top_button1 = ttk.Button(text='确定', width=20, command=self.new_row).pack(pady=30) self.right_top_button2 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) self.id = [] self.name = [] self.gender = [] self.age = [] self.num = [] # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() # 使用cursor()方法获取操作游标 sql = "SELECT * FROM 商品表" # SQL 查询语句 try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: self.id.append(row[0]) self.name.append(row[1]) self.gender.append(row[2]) self.age.append(row[3]) self.num.append(row[4]) except: print("Error: unable to fetch data") messagebox.showinfo('提示', '数据库连接失败!') db.close() def back(self): startpage(self.window) def new_row(self): if self.var_id.get() != '': db = pymysql.connect(host="localhost", user="root", passwd="pananjun", db="cus") cursor = db.cursor() sql = "UPDATE 商品表 SET 商品编号='%s',商品名='%s',商品类别='%s',商品数量='%s',商品供应商='%s' WHERE 商品编号='%s'" % (self.var_id.get(),self.var_name.get(),self.var_gender.get(),self.var_age.get(),self.var_num.get(),self.var_id.get()) try: cursor.execute(sql) db.commit() messagebox.showinfo('提示!', '修改成功!') except: db.rollback() messagebox.showinfo('警告!', '数据库连接失败!') db.close() else: messagebox.showinfo('警告!', '填写修改信息') if __name__ == '__main__': window = tk.Tk() logincheck(window)
最强python连接mysql仓库管理系统
最新推荐文章于 2024-07-25 20:30:31 发布