文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中tkinter+MySQL如何实现增删改查

2023-06-14 11:04

关注

本篇内容介绍了“Python中tkinter+MySQL如何实现增删改查”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、设置主窗口

# -*- coding: utf-8 -*-import tkinter from 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 tab tabControl.add(tab1, text='铁塔订单查询')      # Add the tab tab2 = ttk.Frame(tabControl)            # Add a second tabtabControl.add(tab2, text='告警详细查询')      # 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")

二、定义函数

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_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]) #数据成功提取出来了  # 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如何实现增删改查

“Python中tkinter+MySQL如何实现增删改查”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯