编写的一个登录接口

逻辑图如下:

代码如下:
 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:PyProjectLoginDataUserInfo.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:PyProjectLoginDataUserInfo.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()
 
原文地址:https://www.cnblogs.com/elleblog/p/7747554.html