电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

瀏覽:4日期:2022-06-21 16:07:45
內(nèi)容

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

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

代碼

from tkinter import *from tkinter import messageboximport osimport xlrdfrom xlutils.copy import copylogin=Tk()login.title(’登錄界面’)# 設(shè)計(jì)窗口大小login.geometry(’210x200’)# 設(shè)計(jì)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='驗(yàn)證碼:').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 # 行數(shù) sheet_col_mount = sheet.ncols # 列數(shù) 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# 用戶存在時(shí),判斷密碼是否正確def isPasswordDirect(data,passWord): filename = '用戶信息.xls' excel = xlrd.open_workbook(filename, encoding_override='utf-8') sheet = excel.sheets()[0] sheet_row_mount = sheet.nrows # 行數(shù) sheet_col_mount = sheet.ncols # 列數(shù) 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]): # 記錄用戶名在數(shù)組中的位置 record=i break for i in range(len(sheet_passWord)):if(passWord==sheet_passWord[i]): # 判斷用戶名位置與密碼位置是否相同 # 以及密碼是否與用戶信息中的密碼一致 if(i==record):# 密碼正確return 1break # 密碼錯(cuò)誤 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=’密碼不正確’) # 驗(yàn)證碼位數(shù)不正確 elif len(verifyCode.get())!=4:messagebox.showerror(title=’wrong’,message=’驗(yàn)證碼應(yīng)為4位’) else:messagebox.showinfo(title=’successful’,message=’登錄成功’)Button(login, text=’發(fā)送驗(yàn)證碼’).grid(row=4, column=0, columnspan=3)Button(login,text=’登錄’,command=successful).grid(row=5,column=0,columnspan=3)# 設(shè)計(jì)用戶注冊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=’確認(rèn)密碼:’).grid(row=3, column=0) repasswd = Entry(registered, show=’●’) repasswd.grid(row=3, column=1) Label(registered, text=’手機(jī)號:’).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=’注冊失敗,密碼不應(yīng)少于8位’)# 密碼不同時(shí)含有數(shù)字、字母和特殊符號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=’注冊失敗,密碼格式錯(cuò)誤,必須包括字母和數(shù)字以及特殊符號’)# 兩次密碼輸入不一樣elif passwds.get() != repasswd.get(): messagebox.showerror(title=’wrong’, message=’注冊失敗,兩次密碼不相同’)# 手機(jī)號不正確elif not (phonenum.get().isdigit() and len(phonenum.get()) == 11): messagebox.showerror(title=’wrong’, message=’注冊失敗,請輸入正確的11位手機(jī)號’)# 身份證號不正確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 # 文件行數(shù) wb = copy(excel) w_sheet = wb.get_sheet(0) # 從數(shù)據(jù)下一行開始寫入新用戶信息 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()結(jié)果

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

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

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

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

(3)密碼正確,驗(yàn)證碼位數(shù)不對

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

(4)用戶名不存在

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

5. 注冊新用戶

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

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

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

Python中tkinter的用戶登錄管理的實(shí)現(xiàn)

到此這篇關(guān)于Python中tkinter的用戶登錄管理的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)tkinter用戶登錄管理內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 宁夏档案密集柜,智能密集柜,电动手摇密集柜-盛隆柜业宁夏档案密集柜厂家 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 查分易-成绩发送平台官网| 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | 吸音板,隔音板,吸音材料,吸音板价格,声学材料 - 佛山诺声吸音板厂家 | 蓄电池在线监测系统|SF6在线监控泄露报警系统-武汉中电通电力设备有限公司 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 传动滚筒_厂家-淄博海恒机械制造厂 | 成都思迪机电技术研究所-四川成都思迪编码器 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 非小号行情 - 专业的区块链、数字藏品行情APP、金色财经官网 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 杭州用友|用友软件|用友财务软件|用友ERP系统--杭州协友软件官网 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 美能达分光测色仪_爱色丽分光测色仪-苏州方特电子科技有限公司 |