一、设置主窗口
# -*- coding: utf-8 -*-import tkinterfrom tkinter import ttkimport pymysql# 导入消息对话框子模块import tkinter.messagebox# 创建主窗口root = tkinter.Tk()root.title(\'告警查询\')# 设置窗口大小root.minsize(500,500)tabControl = ttk.Notebook(root)tab1 = ttk.Frame(tabControl) # Create a tabtabControl.add(tab1, text=\'铁塔订单查询\') # Add the tabtab2 = ttk.Frame(tabControl) # Add a second tabtabControl.add(tab2, text=\'告警详细查询\') # Make second tab visibletab3 = ttk.Frame(tabControl) # Add a third tabtabControl.add(tab3, text=\'配置汇总表\') # Make second tab visibletabControl.pack(expand=1, fill=\"both\")
二、定义函数
1.定义增删改查函数
\'\'\'main3响应函数\'\'\'def select3(root, label,tree):sname = label.get()print(\'input: \',sname)# 1.由于刚才已经关闭了数据库连接,需要重新创建Connection对象和Cursor对象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 `站点名称(局向)` like \'\"+sname+\"\'\")c = cursor.execute(\"select * from 配置表汇总 where `站点名称(局向)` like \'\"+sname+\"\'\")# 2.查询结果保存到list_relist_re=cursor.fetchall()print(\'result: \', list_re)if len(list_re) <= 0:tkinter.messagebox.showinfo(\'提示\',sname+\'告警信息不存才!\')else:print(\'result_name: \', list_re[0][0])#数据成功提取出来了# 3.向tree写入数据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)# 由于刚才已经关闭了数据库连接,需要重新创建Connection对象和Cursor对象con = pymysql.connect(host=\'192.168.0.46\', user=\'root\', password=\'root\', database=\'test\', charset=\'utf8\', use_unicode=True)cursor=con.cursor()# SQL 插入语句 里面的数据类型要对应sql = \"INSERT INTO 配置表汇总(`网络类型`,\\`行政区`,`基站名称`,`归属区域`,`基站所处位置具体地址`,\\`基站分级`,`站点名称(局向)`,`是否农村基站`,`二级场景类型`)\\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:# 执行sql语句cursor.execute(sql)# 执行sql语句con.commit()tkinter.messagebox.showinfo(\'提示\',net_name+\'配置汇总表插入成功!\')except:# 发生错误时回滚con.rollback()con.close()def delete(root,label7):base_num = label7.get()print(\'input: \',base_num)# 由于刚才已经关闭了数据库连接,需要重新创建Connection对象和Cursor对象con = pymysql.connect(host=\'192.168.0.46\', user=\'root\', password=\'root\', database=\'test\', charset=\'utf8\', use_unicode=True)cursor=con.cursor()# SQL 插入语句 里面的数据类型要对应sql = \"DELETE FROM 配置表汇总 WHERE `站点名称(局向)`=\'%s\'\" %(base_num)print(sql)try:# 执行sql语句cursor.execute(sql)# 执行sql语句con.commit()tkinter.messagebox.showinfo(\'提示\',base_num+\'配置汇总表删除成功!\')except:# 发生错误时回滚con.rollback()con.close()
2.定义主调用函数
def main3():monty3 = ttk.LabelFrame(tab3, text=\'控件示范区3\')monty3.grid(column=0, row=0,sticky=\'W\', padx=8, pady=4)monty3_1 = ttk.LabelFrame(tab3, text=\'控件示范区2\')monty3_1.grid(column=0, row=1,sticky=\'W\', padx=4, pady=4)# 查询结果tree=ttk.Treeview(monty3_1)#表格tree[\"columns\"]=(\"网络类型\",\"行政区\",\"基站名称\",\"归属区域\",\"基站所处位置具体地址\",\\\"基站分级\",\"站点名称(局向)\",\"是否农村基站\",\"二级场景类型\")tree.column(\"网络类型\",width=50) #表示列,不显示tree.column(\"行政区\",width=50)tree.column(\"基站名称\",width=50)tree.column(\"归属区域\",width=50) #表示列,不显示tree.column(\"基站所处位置具体地址\",width=50)tree.column(\"基站分级\",width=50)tree.column(\"站点名称(局向)\",width=50) #表示列,不显示tree.column(\"是否农村基站\",width=50)tree.column(\"二级场景类型\",width=50)tree.heading(\"网络类型\",text=\"网络类型\") #显示表头tree.heading(\"行政区\",text=\"行政区\")tree.heading(\"基站名称\",text=\"基站名称\")tree.heading(\"归属区域\",text=\"归属区域\") #显示表头tree.heading(\"基站所处位置具体地址\",text=\"基站所处位置具体地址\")tree.heading(\"基站分级\",text=\"基站分级\")tree.heading(\"站点名称(局向)\",text=\"站点名称(局向)\") #显示表头tree.heading(\"是否农村基站\",text=\"是否农村基站\")tree.heading(\"二级场景类型\",text=\"二级场景类型\")tree.grid(column=0,row=1,sticky=\'NSEW\')input_name1 = ttk.Label(monty3, text = \'网络类型:\').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 = \'行政区:\').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 = \'归属区域:\').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 = \'基站分级:\').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 = \'站点名称(局向):\').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 = \'是否农村基站:\').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 = \'二级场景类型:\').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)
效果如下
到此这篇关于Python中tkinter+MySQL实现增删改查的文章就介绍到这了,更多相关tkinter MySQL增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- python3使用tkinter实现ui界面简单实例
- Python tkinter模块弹出窗口及传值回到主窗口操作详解
- Python升级提示Tkinter模块找不到的解决方法
- python的tkinter布局之简单的聊天窗口实现方法
- Python 窗体(tkinter)下拉列表框(Combobox)实例
- 对Python 窗体(tkinter)树状数据(Treeview)详解
- python 实现在tkinter中动态显示label图片的方法
- python3.5使用tkinter制作记事本