编写的一个登录接口
逻辑图如下:
![](https://images2017.cnblogs.com/blog/1183677/201710/1183677-20171028175105617-1942943056.png)
代码如下:
1 # -*- coding:utf-8 -*- 2 # 此程序用于实现以下功能: 3 # 需求内容:编写登录接口 4 # 1、输入用户名密码 5 # 2、认证成功后显示欢迎信息 6 # 3、输错三次后锁定 7 # 作者:Elle 8 # 编写日期:2017年10月28日 9 10 import xlrd 11 from xlutils.copy import copy 12 13 def Login(): 14 UserInfoTable = xlrd.open_workbook("D:\PyProject\Login\Data\UserInfo.xls",formatting_info=True) 15 Data = UserInfoTable.sheets()[0] 16 # 将excel表格中的所有用户数据及所在的行的index存入字典。 17 UserInfo = {} 18 for i in range(1,Data.nrows): 19 for j in range(1,Data.ncols): 20 UserInfo.setdefault(Data.cell(i,0).value,[]).append(Data.cell(i,j).value) 21 UserInfo.setdefault(Data.cell(i, 0).value, []).append(i) 22 # 校验输入的用户名是否为空,是否存在于用户数据的字典中 23 UserName = raw_input("Please input your Login Name:") 24 if UserName is "": 25 UserName = raw_input("Please input the correct Login Name:") 26 if UserName not in UserInfo.keys(): 27 print "The Login Name is not Correct" 28 return 29 # 校验用户是否已经被锁 30 if UserInfo[UserName][1] == "1": 31 print "Your Login Name is locked,Please contact the service." 32 return 33 else:#允许输入3次密码,错误三次后锁定用户 34 for WrongTime in range (0,3): 35 PassWord = raw_input("Please input your password:") 36 if PassWord == UserInfo[UserName][0]: 37 print "Login Success." 38 return 39 elif WrongTime == 2: 40 NewUserInfoTable = copy(UserInfoTable) 41 NewUserInfoData = NewUserInfoTable.get_sheet(0) 42 NewUserInfoData.write(UserInfo[UserName][2],2,"1") 43 NewUserInfoTable.save("D:\PyProject\Login\Data\UserInfo.xls") 44 print "Input Wrong PassWord 3 times,your Login Name is Locked,Please contact service." 45 return 46 47 if __name__=="__main__": 48 Login()