1. 程式人生 > >python 通過GUI:Tkinter程式設計建立一個登入資料庫的案例

python 通過GUI:Tkinter程式設計建立一個登入資料庫的案例

########################################
#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 :會出現登入失敗,請重新登入視窗