国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python中tkinter+MySQL實現增刪改查

Python中tkinter+MySQL實現增刪改查

2021-10-08 00:10多喝l熱水 Python

這篇文章主要介紹了Python中tkinter+MySQL實現增刪改查,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、設置主窗口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding: utf-8 -*-
import tkinter
from tkinter import ttk
import 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 tab
tabControl.add(tab2, text='告警詳細查詢')      # Make second tab visible
 
tab3 = ttk.Frame(tabControl)            # Add a third tab
tabControl.add(tab3, text='配置匯總表')      # Make second tab visible
 
tabControl.pack(expand=1, fill="both")

二、定義函數

1.定義增刪改查函數

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
'''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.定義主調用函數

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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實現增刪改查的文章就介紹到這了,更多相關tkinter MySQL增刪改查內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_35350265/article/details/105506728

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美成人a∨高清免费观看 亚洲国产精品尤物yw在线观看 | 日韩精品一 | 欧美一区二区三区免费 | 黄色毛片视频网站 | 国产中文字幕在线免费观看 | 久久aⅴ乱码一区二区三区 一区二区精品视频 | 一区二区三区国产 | 欧美一区三区 | 91亚洲国产成人久久精品网站 | 欧美亚洲综合另类 | 久久九九国产精品 | 亚洲一区二区中文字幕 | 成人免费一区二区三区视频软件 | 免费视频一区 | 午夜视频 | 黄a视频| 午夜免费视频网站 | 午夜操操操 | 色接久久| 91久久精品一区二区二区 | 欧美激情国产日韩精品一区18 | 日韩综合视频在线观看 | 九九久久免费 | 欧美午夜精品一区二区三区电影 | 国产免费久久 | 欧美中文字幕一区二区 | 在线小视频 | 国产一区二区视频在线 | 黄色av日韩| 精品国产乱码久久久久久影片 | 日韩城人网站 | 午夜在线观看视频 | 国产成人影院 | 欧美一区二区三区成人 | 成人a在线视频 | 深夜福利影院 | 天天色成人综合网 | 91在线麻豆 | 欧美一级片 | 成年人在线看片 | 亚洲精品91|