码迷,mamicode.com
首页 > 编程语言 > 详细

python之编写登陆接口(第一天)

时间:2018-03-16 11:19:14      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:成功   view   mat   登陆   gpo   opened   for   line   存在   

作业:编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

 

帐号文件account.txt内容如下:


sam 123 

david 12 
kevin 123
lin 12 
tailen 123 
jack 12


 

锁文件account_lock.txt默认为空

1、流程图如下:

技术分享图片

二、针对帐号文件里的不存在的用户也可以进行判断并锁定,针对用户和密码共有三次错误重试机会

 

技术分享图片
 1 #_*_ coding:utf-8 _*_
 2 
 3 import sys,os,getpass
 4 
 5 os.system(clear)
 6 
 7 retry_limit = 3
 8 retry_count = 0
 9 
10 account_file = account.txt
11 lock_file = account_lock.txt
12 
13 while retry_count < retry_limit:                                         #只要重试不超过3次就不断循环
14     username = raw_input(\033[31;43mUsername:\033[0m)
15     username = username.strip()
16     lock_check = open(lock_file)                                         #当用户输入用户名后,打开LOCK 文件 以检查是否此用户已经LOCK了
17 
18     for line in lock_check.readlines():                                  #循环LOCK文件 
19         if username == line.strip(\n):                                  #去掉换行符
20             sys.exit(\033[35mUser %s is locked!!!\033[0m % username)   #如果LOCK了就直接退出
21     password = raw_input(\033[32;41mPassword:\033[0m)                  #输入密码
22 
23     f = open(account_file,r)                                           #打开帐号文件 
24     match_flag = False                                                   # 默认为Flase,如果用户match 上了,就设置为 True 
25 
26     for line in f.readlines():                                           
27         user,passwd = line.strip(\n).split()                           #去掉每行多余的\n并把这一行按空格分成两列,分别赋值为user,passwd两个变量
28         if username == user and password == passwd:                      #判断用户名和密码是否都相等
29            print(hello, %s !! % username)
30            match_flag = True                                             #相等就把循环外的match_flag变量改为了True
31            break                                                         #然后就不用继续循环了,直接 跳出,因为已经match上了
32     f.close()
33 
34     if match_flag == False:                                              #如果match_flag还为False,代表上面的循环中跟本就没有match上用户名和密码,所以需要继续循环
35         print(sorry,%s is unmatched % username)
36         retry_count += 1                                                 #计数器加1
37     else:
38         print(wlecome login my learning system!)
39         break                                                            #用户成功登录,退出脚本
40 
41 else:
42     print("you account %s is locked!!!" % username)
43     g = open(lock_file,a)
44     g.write(username)                                                    #被锁用户追加到用户锁文件
45     g.write(\n)   
46     g.close()
View Code

 

 

python之编写登陆接口(第一天)

标签:成功   view   mat   登陆   gpo   opened   for   line   存在   

原文地址:https://www.cnblogs.com/yandongdong/p/8579381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!