python 通過GUI:Tkinter程式設計建立一個登入資料庫的案例
阿新 • • 發佈:2019-02-18
########################################
#author :runfas
#description:利用Tkinter建立一個登入資料庫的視窗
#time : 2018-2-8
#weichat :srf80556635(15992667848)
########################################
5.建立按鈕,這裡解釋下,按鈕按下去,會呼叫command = inser_get 函式,所以接下來 我們要寫按鈕回撥函式
#author :runfas
#description:利用Tkinter建立一個登入資料庫的視窗
#time : 2018-2-8
#weichat :srf80556635(15992667848)
########################################
python 的潮流不斷掀起,庫的支援也不段增大、我也是小白一個,自從開始用到python以後 ,真的是愛不釋手,基本都在python解決工作上的事情,在這裡我推薦一款GUI程式設計庫:TKinter,以下是我通過這個庫建立的一個登入資料庫的介面。
話不多說,先上圖片:
一、工具/原料
1.已經安裝好了python環境
2.已經安裝了mysql資料庫
3.Tkinter庫 (預設安裝完python後會自帶的)
備註:本文使用的是python3 .x.x
二、 方法和步驟
1.增加必要的標頭檔案
import pymysql
from tkinter import *
2.例項化一個父視窗
init_window=Tk() #例項化出一個父視窗
##設定視窗屬性
init_window.title("資料庫的連線 by runfas")
init_window.geometry('700x400+10+10')
3.建立畫布
# welcome image canvas = Canvas(init_window, height=150, width=430)#建立畫布 canvas.pack(side=TOP)#放置畫布(為上端) image_file = PhotoImage(file='F:\data\welcome.gif')#載入圖片檔案 image = canvas.create_image(0,0, anchor='nw', image=image_file)#將圖片置於畫布上
4.建立輸入視窗,包括賬戶,密碼,資料庫地址
#建立輸入框 #mysql 地址 labe_iddr = Label(init_window, text="mysql地址") labe_iddr.pack() text_iddr_default = StringVar() text_iddr = Entry(init_window, textvariable = text_iddr_default) text_iddr_default.set("localhost") text_iddr.pack() #賬戶 labe_user = Label(init_window, text="賬戶") labe_user.pack() text_user_default = StringVar() text_user = Entry(init_window, textvariable = text_user_default) text_user_default.set("root") text_user.pack() #密碼 labe_pwd = Label(init_window, text="密碼") labe_pwd.pack() text_pwd_default = StringVar() text_pwd = Entry(init_window, textvariable = text_pwd_default) text_pwd_default.set("root") text_pwd.pack()
5.建立按鈕,這裡解釋下,按鈕按下去,會呼叫command = inser_get 函式,所以接下來 我們要寫按鈕回撥函式
#建立按鈕
##通過command屬性來指定Button的回撥函式
button_sure = Button(init_window,text="確定",width=15,height=2,command=inset_get)
button_sure.pack()
init_window.mainloop()
6.按鈕回撥函式,拷貝輸入框的字串,然後將字串用於連線資料庫
def inset_get():
mysql_host = text_iddr.get()
mysql_user = text_user.get()
mysql_pwd = text_pwd.get()
print(mysql_host,mysql_user,mysql_pwd)
try :
#連線資料庫
global db_login
db_login=pymysql.connect(host="%s"%mysql_host,user="%s"%mysql_user,passwd="%s"%mysql_pwd,db="jailsystem",charset="utf8")
init_window.destroy()
main()
except:
print("ERROR:mysql not connect")
messagebox.showinfo(title='login faild', message='登入失敗,請重新登入 ')
資料庫連線需要用到pymysql.connect(),後面引數分別是主機地址,賬戶,密碼,資料庫,編碼格式
init_window.destroy() 是銷燬登入視窗
異常的時候except :會出現登入失敗,請重新登入視窗