Python中tkinter+MySQL實(shí)現(xiàn)增刪改查
# -*- coding: utf-8 -*-import tkinter from tkinter import ttkimport pymysql# 導(dǎo)入消息對(duì)話框子模塊import tkinter.messagebox# 創(chuàng)建主窗口root = tkinter.Tk()root.title(’告警查詢’)# 設(shè)置窗口大小root.minsize(500,500) tabControl = ttk.Notebook(root) tab1 = ttk.Frame(tabControl) # Create a tab tabControl.add(tab1, text=’鐵塔訂單查詢’) # Add the tab tab2 = ttk.Frame(tabControl) # Add a second tabtabControl.add(tab2, text=’告警詳細(xì)查詢’) # Make second tab visible tab3 = ttk.Frame(tabControl) # Add a third tabtabControl.add(tab3, text=’配置匯總表’) # Make second tab visible tabControl.pack(expand=1, fill='both') 二、定義函數(shù)1.定義增刪改查函數(shù)
’’’main3響應(yīng)函數(shù)’’’def select3(root, label,tree): sname = label.get() print(’input: ’,sname) # 1.由于剛才已經(jīng)關(guān)閉了數(shù)據(jù)庫(kù)連接,需要重新創(chuàng)建Connection對(duì)象和Cursor對(duì)象 con = pymysql.connect(host=’192.168.0.46’, user=’root’, password=’root’, database=’test’, charset=’utf8’, use_unicode=True) cursor=con.cursor() print('select * from 配置表匯總 where `站點(diǎn)名稱(局向)` like ’'+sname+'’') c = cursor.execute('select * from 配置表匯總 where `站點(diǎn)名稱(局向)` like ’'+sname+'’') # 2.查詢結(jié)果保存到list_re list_re=cursor.fetchall() print(’result: ’, list_re) if len(list_re) <= 0: tkinter.messagebox.showinfo(’提示’,sname+’告警信息不存才!’) else: print(’result_name: ’, list_re[0][0]) #數(shù)據(jù)成功提取出來(lái)了 # 3.向tree寫(xiě)入數(shù)據(jù) for i in range(len(list_re)): tree.insert(’’, i, text=i ,values=(list_re[i][0], list_re[i][2],list_re[i][4], list_re[i][14], list_re[i][5], list_re[i][9],list_re[i][11], list_re[i][12], list_re[i][13]))tree.grid(column=0,row=1,sticky=’NSEW’) con.close()def insert(root, label1,label2,label3,label4,label5,label6,label7,label8,label9): net_name = label1.get() area_name = label2.get() base_name = label3.get() belong_name = label4.get() base_local = label5.get() base_level = label6.get() base_num = label7.get() rural = label8.get() scene = label9.get() print(’input: ’,net_name) # 由于剛才已經(jīng)關(guān)閉了數(shù)據(jù)庫(kù)連接,需要重新創(chuàng)建Connection對(duì)象和Cursor對(duì)象 con = pymysql.connect(host=’192.168.0.46’, user=’root’, password=’root’, database=’test’, charset=’utf8’, use_unicode=True) cursor=con.cursor() # SQL 插入語(yǔ)句 里面的數(shù)據(jù)類型要對(duì)應(yīng) sql = 'INSERT INTO 配置表匯總(`網(wǎng)絡(luò)類型`, `行政區(qū)`,`基站名稱`,`歸屬區(qū)域`,`基站所處位置具體地址`, `基站分級(jí)`,`站點(diǎn)名稱(局向)`,`是否農(nóng)村基站`,`二級(jí)場(chǎng)景類型`) VALUES (’%s’,’%s’,’%s’,’%s’,’%s’,’%s’,’%s’,’%s’,’%s’)' % (net_name,area_name,base_name,belong_name,base_local,base_level,base_num,rural,scene) print(sql)try: # 執(zhí)行sql語(yǔ)句 cursor.execute(sql) # 執(zhí)行sql語(yǔ)句 con.commit() tkinter.messagebox.showinfo(’提示’,net_name+’配置匯總表插入成功!’) except: # 發(fā)生錯(cuò)誤時(shí)回滾 con.rollback()con.close() def delete(root,label7): base_num = label7.get() print(’input: ’,base_num) # 由于剛才已經(jīng)關(guān)閉了數(shù)據(jù)庫(kù)連接,需要重新創(chuàng)建Connection對(duì)象和Cursor對(duì)象 con = pymysql.connect(host=’192.168.0.46’, user=’root’, password=’root’, database=’test’, charset=’utf8’, use_unicode=True) cursor=con.cursor() # SQL 插入語(yǔ)句 里面的數(shù)據(jù)類型要對(duì)應(yīng) sql = 'DELETE FROM 配置表匯總 WHERE `站點(diǎn)名稱(局向)`=’%s’' %(base_num) print(sql)try: # 執(zhí)行sql語(yǔ)句 cursor.execute(sql) # 執(zhí)行sql語(yǔ)句 con.commit() tkinter.messagebox.showinfo(’提示’,base_num+’配置匯總表刪除成功!’) except: # 發(fā)生錯(cuò)誤時(shí)回滾 con.rollback()con.close() 2.定義主調(diào)用函數(shù)
def main3(): monty3 = ttk.LabelFrame(tab3, text=’控件示范區(qū)3’) monty3.grid(column=0, row=0,sticky=’W’, padx=8, pady=4) monty3_1 = ttk.LabelFrame(tab3, text=’控件示范區(qū)2’) monty3_1.grid(column=0, row=1,sticky=’W’, padx=4, pady=4)# 查詢結(jié)果 tree=ttk.Treeview(monty3_1)#表格 tree['columns']=('網(wǎng)絡(luò)類型','行政區(qū)','基站名稱','歸屬區(qū)域','基站所處位置具體地址','基站分級(jí)','站點(diǎn)名稱(局向)','是否農(nóng)村基站','二級(jí)場(chǎng)景類型') tree.column('網(wǎng)絡(luò)類型',width=50) #表示列,不顯示 tree.column('行政區(qū)',width=50) tree.column('基站名稱',width=50) tree.column('歸屬區(qū)域',width=50) #表示列,不顯示 tree.column('基站所處位置具體地址',width=50) tree.column('基站分級(jí)',width=50) tree.column('站點(diǎn)名稱(局向)',width=50) #表示列,不顯示 tree.column('是否農(nóng)村基站',width=50) tree.column('二級(jí)場(chǎng)景類型',width=50) tree.heading('網(wǎng)絡(luò)類型',text='網(wǎng)絡(luò)類型') #顯示表頭 tree.heading('行政區(qū)',text='行政區(qū)') tree.heading('基站名稱',text='基站名稱') tree.heading('歸屬區(qū)域',text='歸屬區(qū)域') #顯示表頭 tree.heading('基站所處位置具體地址',text='基站所處位置具體地址') tree.heading('基站分級(jí)',text='基站分級(jí)') tree.heading('站點(diǎn)名稱(局向)',text='站點(diǎn)名稱(局向)') #顯示表頭 tree.heading('是否農(nóng)村基站',text='是否農(nóng)村基站') tree.heading('二級(jí)場(chǎng)景類型',text='二級(jí)場(chǎng)景類型')tree.grid(column=0,row=1,sticky=’NSEW’)input_name1 = ttk.Label(monty3, text = ’網(wǎng)絡(luò)類型:’).grid(column=0, row=0, sticky=’W’,pady=5) label1 = tkinter.StringVar() entry1 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label1).grid(column=1, row=0, sticky=’W’)input_name2 = ttk.Label(monty3, text = ’行政區(qū):’).grid(column=3, row=0, sticky=’W’) label2 = tkinter.StringVar() entry2 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label2).grid(column=4, row=0, sticky=’W’) input_name3 = ttk.Label(monty3, text = ’基站名稱:’).grid(column=0, row=1, sticky=’W’,pady=5) label3 = tkinter.StringVar() entry3 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label3).grid(column=1, row=1, sticky=’W’)input_name4 = ttk.Label(monty3, text = ’歸屬區(qū)域:’).grid(column=3, row=1, sticky=’W’) label4 = tkinter.StringVar() entry4 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label4).grid(column=4, row=1, sticky=’W’) input_name5 = ttk.Label(monty3, text = ’基站所處位置具體地址:’).grid(column=0, row=2, sticky=’W’,pady=5) label5 = tkinter.StringVar() entry5 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label5).grid(column=1, row=2, sticky=’W’) input_name6 = ttk.Label(monty3, text = ’基站分級(jí):’).grid(column=0, row=3, sticky=’W’,pady=5) label6 = tkinter.StringVar() entry6 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label6).grid(column=1, row=3, sticky=’W’) input_name7 = ttk.Label(monty3, text = ’站點(diǎn)名稱(局向):’).grid(column=0, row=4, sticky=’W’,pady=5) label7 = tkinter.StringVar() entry7 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label7).grid(column=1, row=4, sticky=’W’) input_name8 = ttk.Label(monty3, text = ’是否農(nóng)村基站:’).grid(column=0, row=5, sticky=’W’,pady=5) label8 = tkinter.StringVar() entry8 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label8).grid(column=1, row=5, sticky=’W’) input_name9 = ttk.Label(monty3, text = ’二級(jí)場(chǎng)景類型:’).grid(column=0, row=6, sticky=’W’,pady=5) label9 = tkinter.StringVar() entry9 = tkinter.Entry(monty3,bg=’#ffffff’,width=20,textvariable=label9).grid(column=1, row=6, sticky=’W’) select_button = tkinter.Button(monty3,bg=’white’,text=’查詢’,width=10,height=1, command=lambda :select3(monty3, label7,tree)).grid(column=0, row=7, sticky=’W’,pady=5)insert_button = tkinter.Button(monty3,bg=’white’,text=’插入’,width=10,height=1, command=lambda :insert(monty3,label1,label2,label3,label4,label5,label6, label7,label8,label9)).grid(column=1, row=7, sticky=’W’,padx=5,pady=5) delete_button = tkinter.Button(monty3,bg=’white’,text=’刪除’,width=10,height=1, command=lambda :delete(monty3, label7)).grid(column=2, row=7, sticky=’W’,pady=5)
效果如下
到此這篇關(guān)于Python中tkinter+MySQL實(shí)現(xiàn)增刪改查的文章就介紹到這了,更多相關(guān)tkinter MySQL增刪改查內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. asp批量添加修改刪除操作示例代碼2. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案3. PHP循環(huán)與分支知識(shí)點(diǎn)梳理4. css代碼優(yōu)化的12個(gè)技巧5. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)6. ASP實(shí)現(xiàn)加法驗(yàn)證碼7. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲8. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能9. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題10. 解析原生JS getComputedStyle
