亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python中tkinter的用戶登錄管理的實現

瀏覽:2日期:2022-06-21 16:07:45
內容

編寫一個用戶登錄管理程序,設計窗體的布局,制定密碼規則和驗證碼規則。要求使用 Python 標準庫 tkinter 編寫基于GUI 的用戶登錄窗體。通過該窗體,用戶輸入用戶名、密碼和驗證碼等信息,確認登錄后需要判斷用戶信息是否合法,并彈出對應的反饋信息。通過判斷用戶是否在用戶信息中,以及輸入密碼是否與用戶信息文件中用戶名所對應的密碼是否相同,來判斷用戶是否合法。此外,新用戶還可以進行注冊,注冊需要輸入用戶名、密碼、手機號和身份證號等信息。注冊時密碼需要遵循一定規則(長度不小于8且含有數字、字母和特殊字符),注冊后將用戶信息存儲到文件中,更新用戶信息文件。步驟

Python中tkinter的用戶登錄管理的實現

代碼

from tkinter import *from tkinter import messageboximport osimport xlrdfrom xlutils.copy import copylogin=Tk()login.title(’登錄界面’)# 設計窗口大小login.geometry(’210x200’)# 設計GUI用戶登錄窗體Label(login,text='用戶登錄').grid(row=0,column=0,columnspan=2)Label(login,text='用戶名').grid(row=1,column=0)name=Entry(login)name.grid(row=1,column=1)Label(login,text='密碼:').grid(row=2,column=0)passWord=Entry(login,show=’●’)passWord.grid(row=2,column=1)Label(login,text='驗證碼:').grid(row=3,column=0,sticky=E)verifyCode=Entry(login)verifyCode.grid(row=3,column=1)# 判斷用戶是否在用戶信息.xls文件中def isInExcel(data): filename = '用戶信息.xls' excel = xlrd.open_workbook(filename, encoding_override='utf-8') sheet = excel.sheets()[0] sheet_row_mount = sheet.nrows # 行數 sheet_col_mount = sheet.ncols # 列數 sheet_name = [] # 所有用戶名信息 for x in range(1, sheet_row_mount):y = 0sheet_name.append(sheet.cell_value(x, y)) for x in sheet_name:# 找到用戶名if (data == x): # 已有用戶 return 1 break; # 未注冊用戶 return -1# 用戶存在時,判斷密碼是否正確def isPasswordDirect(data,passWord): filename = '用戶信息.xls' excel = xlrd.open_workbook(filename, encoding_override='utf-8') sheet = excel.sheets()[0] sheet_row_mount = sheet.nrows # 行數 sheet_col_mount = sheet.ncols # 列數 sheet_name = [] # 所有用戶名信息 for x in range(1, sheet_row_mount):y = 0sheet_name.append(sheet.cell_value(x, y)) sheet_passWord=[] # 所有密碼信息 for x in range(1, sheet_row_mount):y = 1sheet_passWord.append(sheet.cell_value(x, y)) for i in range(len(sheet_name)):if(data==sheet_name[i]): # 記錄用戶名在數組中的位置 record=i break for i in range(len(sheet_passWord)):if(passWord==sheet_passWord[i]): # 判斷用戶名位置與密碼位置是否相同 # 以及密碼是否與用戶信息中的密碼一致 if(i==record):# 密碼正確return 1break # 密碼錯誤 return -1def successful(): # 判斷用戶名不存在 if (isInExcel(name.get())==-1):messagebox.showerror(title=’wrong’, message=’用戶不存在,請注冊’) # 密碼不正確 elif (isPasswordDirect(name.get(),passWord.get())==-1):messagebox.showerror(title=’wrong’, message=’密碼不正確’) # 驗證碼位數不正確 elif len(verifyCode.get())!=4:messagebox.showerror(title=’wrong’,message=’驗證碼應為4位’) else:messagebox.showinfo(title=’successful’,message=’登錄成功’)Button(login, text=’發送驗證碼’).grid(row=4, column=0, columnspan=3)Button(login,text=’登錄’,command=successful).grid(row=5,column=0,columnspan=3)# 設計用戶注冊GUI界面def registereds(): registered=Tk() registered.title(’registered’) registered.geometry(’230x185’) Label(registered, text=’用戶注冊’).grid(row=0, column=0, columnspan=2) Label(registered, text=’用戶名:’).grid(row=1, column=0, sticky=E) names = Entry(registered) names.grid(row=1, column=1) Label(registered, text=’密碼:’).grid(row=2, column=0, sticky=E) passwds = Entry(registered, show=’●’) passwds.grid(row=2, column=1) Label(registered, text=’確認密碼:’).grid(row=3, column=0) repasswd = Entry(registered, show=’●’) repasswd.grid(row=3, column=1) Label(registered, text=’手機號:’).grid(row=4, column=0, sticky=E) phonenum = Entry(registered) phonenum.grid(row=4, column=1) Label(registered, text=’身份證號:’).grid(row=5, column=0) man = Entry(registered) man.grid(row=5, column=1) # 判斷是否含有特殊符號 def teshufuhao(input_psd):string = '~!@#$%^&*()_+-*/<>,.[]/'for i in string: if i in input_psd:return Truereturn False def registeredes():# 密碼長度小于8if len(passwds.get()) < 8: messagebox.showerror(title=’wrong’, message=’注冊失敗,密碼不應少于8位’)# 密碼不同時含有數字、字母和特殊符號elif not (any([x.isdigit() for x in passwds.get()]) and any([x.isalpha() for x in passwds.get()]) and teshufuhao(passwds.get())): messagebox.showerror(title=’wrong’, message=’注冊失敗,密碼格式錯誤,必須包括字母和數字以及特殊符號’)# 兩次密碼輸入不一樣elif passwds.get() != repasswd.get(): messagebox.showerror(title=’wrong’, message=’注冊失敗,兩次密碼不相同’)# 手機號不正確elif not (phonenum.get().isdigit() and len(phonenum.get()) == 11): messagebox.showerror(title=’wrong’, message=’注冊失敗,請輸入正確的11位手機號’)# 身份證號不正確elif len(man.get()) != 18: messagebox.showerror(title=’wrong’, message=’注冊失敗,請輸入正確的18位身份證號’)else: messagebox.showinfo(title=’successful’, message=’注冊成功!’) # 將新用戶信息存入用戶信息文件 excel = xlrd.open_workbook(’用戶信息.xls’) sheet = excel.sheets()[0] nrow = sheet.nrows # 文件行數 wb = copy(excel) w_sheet = wb.get_sheet(0) # 從數據下一行開始寫入新用戶信息 w_sheet.write(nrow, 0, names.get()) w_sheet.write(nrow, 1, repasswd.get()) w_sheet.write(nrow, 2, phonenum.get()) w_sheet.write(nrow, 3, man.get()) wb.save(’用戶信息.xls’) Button(registered, text=’注冊’, command=registeredes).grid(row=6, column=0, columnspan=3)Button(login, text=’注冊’, command=registereds).grid(row=6, column=0, columnspan=3)login.mainloop()結果

(1)密碼正確(對照用戶信息文件輸入密碼),結果顯示登錄成功

Python中tkinter的用戶登錄管理的實現

Python中tkinter的用戶登錄管理的實現

(2)密碼不正確,結果顯示密碼不正確

Python中tkinter的用戶登錄管理的實現

(3)密碼正確,驗證碼位數不對

Python中tkinter的用戶登錄管理的實現

(4)用戶名不存在

Python中tkinter的用戶登錄管理的實現

5. 注冊新用戶

(1)新用戶寫入用戶信息文件

Python中tkinter的用戶登錄管理的實現

Python中tkinter的用戶登錄管理的實現

(2)再次登錄,用戶登錄成功

Python中tkinter的用戶登錄管理的實現

到此這篇關于Python中tkinter的用戶登錄管理的實現的文章就介紹到這了,更多相關tkinter用戶登錄管理內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 婷婷久| 国产51社区精品视频资源 | 国产精品成人一区二区1 | 免费观看情趣v视频网站 | 国产日本特黄特色大片免费视频 | 国产又粗又黄又湿又大 | 亚洲精品aaa | 欧美日韩在线网站 | 亚洲 欧美 中文 日韩专区 | 曰本变态bdsm色虐七v | 欧美伦理三级在线播放影院 | 午夜高清免费观看视频 | 亚洲国产精品第一区二区 | 免费看黄色小视频 | 在线观看精品91老司机 | 国产视频首页 | 亚洲qingse中文字幕久久 | 午夜啪啪免费视频 | 欧美一级特黄aa大片视频 | 西西午夜视频 | 久久久久中文字幕 | 国产91情侣在线精品国产 | 精品日韩一区二区 | 亚洲视频福利 | 欧美特黄特刺激a一级淫片 欧美特黄高清免费观看的 欧美爱片 | 国产成人高清亚洲一区久久 | 国产黄色三级三级三级 | 亚洲欧美日韩精品一区 | 成人做爰免费看网站 | 亚洲精品国产一区二区三 | 国产欧美日韩视频 | 亚洲欧美精品成人久久91 | 亚洲国产三级在线观看 | 午夜啪啪网| 国产精品啪 | 成年男女免费大片在线观看 | 麻豆传媒入口直接进入免费版 | 日韩精品中文字幕一区三区 | 国产精品久久久久久久久久免费 | 国产成人lu在线视频 | 99久久综合九九亚洲 |