python编写登录接口(第一天)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python编写登录接口(第一天)相关的知识,希望对你有一定的参考价值。

作业:编写登录接口

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

 

针对此实例书写内容具体如下:

账户文件account.txt内容如下:


 

Tamir  123

test1  123

test2  123

test3  123

 


 

账户锁定文件account_lock.txt默认为空

 

针对账号文件(account.txt)里的用户进行判断并锁定,针对用户和密码各有三次错误重试机会。

1.流程图如下:

技术分享

代码如下:

 1 # -*- coding:utf-8 -*-
 2 # Author:Steven Kang
 3 
 4 import os,sys,getpass  #导入os,sys,getpass 模块
 5 u = 0                   #用户的循环次数
 6 while u < 3:
 7     username = input("请输入您的用户名:")           #使用input 让用户输入并赋值给username变量
 8     lock_file = open(account_lock.txt,r+)             #打开account_lock文件,权限是读取更新,并赋值给lock_f变量
 9     lock_list = lock_file.readlines()                    #使用.readlines的方法逐行读取account_lock文件,并赋值给lock_list变量
10 
11     for lock_line in lock_list:                      #使用for循环读取account_lock的内容
12         lock_line = lock_line.strip(\\n)            #使用.strip()的方法去点换行符
13         if username == lock_line:
14             print(用户 %s 已经锁定,请联系您的系统管理员 % username)  #如果存在打印输出
15             sys.exit(1)                                    #跳出循环
16     user_file = open(account.txt,r)                    #打开account文件,权限是读取更新,并赋值给user_f变量
17     user_list = user_file.readlines()                    #使用.readlines的方法逐行读取account文件,并赋值给user_list变量
18     for user_line in user_list:                      #使用for循环读取account的内容
19         (user,passwd) = user_line.strip(\\n).split()   #分别获取账号和密码信息
20         if username == user:                         #使用if判断用户输入的用户是否在normal_user中存在
21             p = 0                                    #输入密码的循环次数
22             while p < 3:                            #只要用户登录异常不超过3次就不断循环
23                 password = getpass.getpass(请输入您的密码:)       #使用getpass模块的.getpass方法让用户输入密码(输入的时候不会显示)
24                 if password == passwd:              #使用if判断用户输入的密码在normal_user中是否存在(相等)
25                     print(欢迎 %s 登录系统 %username)              #用户名密码全部相等(存在)打印欢迎登录信息
26                     sys.exit(0)                         #跳出循环
27                 else:
28                     if p != 2:
29                         print(对不起,%s 的密码错误,请重新输入,您还有 %d 次机会%(username,2 - p))
30                 p += 1                              #密码输入错误后,循环值增加1
31             else:
32                 lock_file.write(username + \\n)      #用户名密码输入次数超过3次的用户添加到account_lock文件中
33                 #lock_f.write(‘%s \\n‘ %username)
34                 sys.exit(对不起 %s 用户已经锁定,请联系管理员% username)
35         else:
36             pass                                   #当用户没匹配时,跳过并继续循环
37     else:
38         if u != 2:                                 #i=2时,是最后一次机会,不用在提示还剩余0次机会了
39             print(对不起,%s 输入错误,请重新输入,您还有 %d 次机会 %(username, 2 - u))
40     u += 1                                         #当用户输入错误时,循环值增加1
41 else:
42     sys.exit(因为您的错误输入,程序已经退出,请重新运行)   #用户输入三次错误后,异常退出
43 lock_f.close()          #关闭lock_f文件

 

以上是关于python编写登录接口(第一天)的主要内容,如果未能解决你的问题,请参考以下文章

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

5python第一天作业

python第一天作业1

Python 编写用户登录接口

Flask 编写http接口api及接口自动化测试

第一天作业