Python 實現簡單的登錄註冊界面

Python 實現簡單的登錄註冊界面



注意:編寫代碼之前需要導入很重要的包

    import tkinter as tk
import pickle
from tkinter import messagebox

主要實現的功能


  1. 首先在python字典裏定義一對值{'admin':'admin'}如果登錄成功顯示"How are you! admin"。
  2. 如果字典裏沒有一一對應的一對值{'Username':'Password'},則需要註冊,緊接着再登錄。

實現過程



登錄界面


    • 首先初始化一個window界面

window = tk.Tk()
window.title('Welcome to Mofan Python')
window.geometry('450x300')
.
.
.
window.mainloop()
    • 界面需要一個歡迎的logo,主要使用畫布實現

#welcome image
#創建一個200X500的畫布
canvas = tk.Canvas(window,height = 200,width = 500)
#logo的路徑
image_file = tk.PhotoImage(file = 'E:\\welcome.gif')
#什麼位置插入logo圖片
image = canvas.create_image(0,0,anchor = 'nw',image = image_file)
canvas.pack(side = 'top')
    • 接下來主要是登錄界面的代碼實現
    
tk.Label(window,text = 'Username:').place(x = 50,y = 150)
tk.Label(window,text = 'Password:').place(x = 50,y = 190)

var_usr_name = tk.StringVar()
#默認值爲[email protected]
var_usr_name.set('[email protected]')
var_usr_pwd = tk.StringVar()
entry_usr_name = tk.Entry(window,textvariable = var_usr_name)
entry_usr_name.place(x = 160,y = 150)

entry_usr_pwd = tk.Entry(window,textvariable = var_usr_pwd,show ='*')
entry_usr_pwd.place(x = 160,y = 190)
    • 登錄和註冊按鈕的實現代碼

#Login and Sign up button
# command = usr_login 調用usr_login函數
btn_login = tk.Button(window,text = 'Login',command = usr_login)
btn_login.place(x = 170,y = 230)
btn_sign_up = tk.Button(window,text = 'Sign up',command = usr_sign_up)
btn_sign_up.place(x = 270,y = 230)
    • 進行登錄判斷代碼:主要用函數判斷

#聲明usr_login函數
def usr_login():
usr_name = var_usr_name.get()
usr_pwd = var_usr_pwd.get()
try:
with open('usrs_info,pickle','rb') as usr_file:
usrs_info = pickle.load(usr_file)
except FileNotFoundError:
with open('usrs_info','wb') as usr_file:
usrs_info = {'admin':'admin'}
pickle.dump(usrs_info,usr_file)
if usr_name in usrs_info:
if usr_pwd == usrs_info[usr_name]:
tk.messagebox.showinfo(title = 'Welcome',message = 'How are you?' + usr_name)
else:
tk.messagebox.showinfo(message = 'Error,your password is wrong,try again.')
else:
is_sign_up = tk.messagebox.askyesno('Welcome','You hava not sign up yet.Sign up today?')

if is_sign_up:
usr_sign_up()
    • 登錄用戶不存在需要註冊


註冊界面



差不多和登錄界面一樣,然後不進行細細的說明了,有不懂地方的可以給下文郵件地址發郵箱。

def usr_sign_up():
def sign_to_Mofan_Python():

np = new_pwd.get()

npf = new_pwd_confirm.get()

nn = new_name.get()
with open('usrs_info','rb') as usr_file:
exist_usr_info = pickle.load(usr_file)
if np!= npf:
tk.messagebox.showerror('Error','Password and confirm password must be the same!')
elif nn in exist_usr_info:
tk.messagebox.showerror('Error','The user has already signed up!')
else:
exist_usr_info[nn] = np
with open('usrs_info.pickle','wb') as usr_file:
pickle.dump(exist_usr_info,usr_file)
tk.messagebox.showinfo('Welcome','You have successfully signed up!')
window_sign_up.destroy()
window_sign_up = tk.Toplevel(window)
window_sign_up.geometry('350x200')
window_sign_up.title('Sign up window')

new_name = tk.StringVar()
new_name.set('[email protected]')
tk.Label(window_sign_up,text = 'Username:').place(x = 10,y = 10)
entry_new_name = tk.Entry(window_sign_up,textvariable = new_name)
entry_new_name.place(x = 150,y = 10)

new_pwd = tk.StringVar()
tk.Label(window_sign_up,text = 'Password:').place(x = 10,y = 50)
entry_new_pwd = tk.Entry(window_sign_up,textvariable = new_pwd,show = '*')
entry_new_pwd.place(x = 150,y = 50)

new_pwd_confirm = tk.StringVar()
tk.Label(window_sign_up,text = 'Confirm password:').place(x = 10,y = 90)
entry_comfirm_sign_up = tk.Entry(window_sign_up,textvariable = new_pwd_confirm,show = '*')
entry_comfirm_sign_up.place(x = 150,y = 90)

btn_comfirm_sign_up = tk.Button(window_sign_up,text = 'Sign up',command = sign_to_Mofan_Python)
btn_comfirm_sign_up.place(x = 150,y = 130)

運行界面截圖


登錄界面

註冊界面

 

寶寶們有啥不懂的問題可以聯繫我呦!

[email protected]

     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章