欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中tkinter+MySQL實現(xiàn)增刪改查

 更新時間:2021年04月09日 11:23:01   作者:多喝l熱水  
這篇文章主要介紹了Python中tkinter+MySQL實現(xiàn)增刪改查,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、設置主窗口

# -*- coding: utf-8 -*-
import tkinter 
from tkinter import ttk
import pymysql
# 導入消息對話框子模塊
import tkinter.messagebox
# 創(chuàng)建主窗口
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") 

二、定義函數(shù)

1.定義增刪改查函數(shù)

'''main3響應函數(shù)'''
def select3(root, label,tree):
    sname = label.get()
    print('input: ',sname)
 # 1.由于剛才已經(jīng)關閉了數(shù)據(jù)庫連接,需要重新創(chuàng)建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.查詢結(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ù)成功提取出來了 
 # 3.向tree寫入數(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)關閉了數(shù)據(jù)庫連接,需要重新創(chuàng)建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 插入語句  里面的數(shù)據(jù)類型要對應
    sql = "INSERT INTO 配置表匯總(`網(wǎng)絡類型`,\
    `行政區(qū)`,`基站名稱`,`歸屬區(qū)域`,`基站所處位置具體地址`,\
    `基站分級`,`站點名稱(局向)`,`是否農(nó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語句
       cursor.execute(sql)
      # 執(zhí)行sql語句
       con.commit()
       tkinter.messagebox.showinfo('提示',net_name+'配置匯總表插入成功!')
    except:
      # 發(fā)生錯誤時回滾
       con.rollback()
    
    con.close() 
    
 
def delete(root,label7):
    base_num = label7.get()
    print('input: ',base_num)
    # 由于剛才已經(jīng)關閉了數(shù)據(jù)庫連接,需要重新創(chuàng)建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 插入語句  里面的數(shù)據(jù)類型要對應
    sql = "DELETE FROM 配置表匯總 WHERE `站點名稱(局向)`='%s'" %(base_num)
    print(sql)
    
    try:
      # 執(zhí)行sql語句
       cursor.execute(sql)
      # 執(zhí)行sql語句
       con.commit()
       tkinter.messagebox.showinfo('提示',base_num+'配置匯總表刪除成功!')
    except:
      # 發(fā)生錯誤時回滾
       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)絡類型","行政區(qū)","基站名稱","歸屬區(qū)域","基站所處位置具體地址",\
        "基站分級","站點名稱(局向)","是否農(nóng)村基站","二級場景類型")
    tree.column("網(wǎng)絡類型",width=50)   #表示列,不顯示
    tree.column("行政區(qū)",width=50)
    tree.column("基站名稱",width=50)
    tree.column("歸屬區(qū)域",width=50)   #表示列,不顯示
    tree.column("基站所處位置具體地址",width=50)
    tree.column("基站分級",width=50)
    tree.column("站點名稱(局向)",width=50)   #表示列,不顯示
    tree.column("是否農(nóng)村基站",width=50)
    tree.column("二級場景類型",width=50)
 
    tree.heading("網(wǎng)絡類型",text="網(wǎng)絡類型")  #顯示表頭
    tree.heading("行政區(qū)",text="行政區(qū)")
    tree.heading("基站名稱",text="基站名稱")
    tree.heading("歸屬區(qū)域",text="歸屬區(qū)域")  #顯示表頭
    tree.heading("基站所處位置具體地址",text="基站所處位置具體地址")
    tree.heading("基站分級",text="基站分級")
    tree.heading("站點名稱(局向)",text="站點名稱(局向)")  #顯示表頭
    tree.heading("是否農(nóng)村基站",text="是否農(nóng)村基站")
    tree.heading("二級場景類型",text="二級場景類型")
    
    tree.grid(column=0,row=1,sticky='NSEW')
    
    input_name1 = ttk.Label(monty3, text = '網(wǎng)絡類型:').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 = '基站分級:').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 = '是否農(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 = '二級場景類型:').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實現(xiàn)增刪改查的文章就介紹到這了,更多相關tkinter MySQL增刪改查內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python常見庫matplotlib學習筆記之多個子圖繪圖

    Python常見庫matplotlib學習筆記之多個子圖繪圖

    Matplotlib是Python提供的一個繪圖庫,通過該庫我們可以很容易的繪制出折線圖、直方圖、散點圖、餅圖等豐富的統(tǒng)計圖,下面這篇文章主要給大家介紹了關于Python常見庫matplotlib學習筆記之多個子圖繪圖的相關資料,需要的朋友可以參考下
    2023-05-05
  • tensorflow沒有output結(jié)點,存儲成pb文件的例子

    tensorflow沒有output結(jié)點,存儲成pb文件的例子

    今天小編就為大家分享一篇tensorflow沒有output結(jié)點,存儲成pb文件的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 如何使用Python?Matplotlib繪制條形圖

    如何使用Python?Matplotlib繪制條形圖

    當我們使用plot方法繪圖時,默認繪制的是折線圖,下面這篇文章主要給大家介紹了關于如何使用Python?Matplotlib繪制條形圖的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 詳解Python中如何寫控制臺進度條的整理

    詳解Python中如何寫控制臺進度條的整理

    這篇文章主要介紹了詳解Python中如何寫控制臺進度條的整理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 淺談tensorflow之內(nèi)存暴漲問題

    淺談tensorflow之內(nèi)存暴漲問題

    今天小編就為大家分享一篇淺談tensorflow之內(nèi)存暴漲問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • django如何計算兩個TimeField的時差

    django如何計算兩個TimeField的時差

    在Django中,可以使用datetime模塊來計算兩個TimeField字段的時間差,下面通過示例代碼介紹django?計算兩個TimeField的時差,需要的朋友可以參考下
    2023-05-05
  • python except異常處理之后不退出,解決異常繼續(xù)執(zhí)行的實現(xiàn)

    python except異常處理之后不退出,解決異常繼續(xù)執(zhí)行的實現(xiàn)

    這篇文章主要介紹了python except異常處理之后不退出,解決異常繼續(xù)執(zhí)行的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python 統(tǒng)計列表中不同元素的數(shù)量方法

    python 統(tǒng)計列表中不同元素的數(shù)量方法

    今天小編就為大家分享一篇python 統(tǒng)計列表中不同元素的數(shù)量方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 一文掌握python中的時間包

    一文掌握python中的時間包

    這篇文章主要介紹了python中的時間包,主要包括datetime時間包,獲取當前時間,獲取時間間隔及時間對象轉(zhuǎn)時間字符串的相關知識,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • python實現(xiàn)線性插值的示例

    python實現(xiàn)線性插值的示例

    線性插值是針對一維數(shù)據(jù)的插值方法,它根據(jù)一維數(shù)據(jù)序列中需要插值的點的左右臨近兩個數(shù)據(jù)來進行數(shù)值估計,這篇文章主要介紹了python實現(xiàn)線性插值,需要的朋友可以參考下
    2022-12-12

最新評論