zoukankan      html  css  js  c++  java
  • Python学习第一天-编写登陆接口

    编写登陆接口

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

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

    qaz 123
    qwe 12345
    qweqwr 12321424
    ......


    锁文件user_lock.txt默认为空


    一、只针对帐号文件里的用户进行判断并锁定,针对用户和密码各有三次错误重试机会。
    流程图:


    二、代码如下

     1 # Author: zfh
     2 # -*- coding:utf-8 -*-
     3 import os,getpass,sys
     4 
     5 i = 0
     6 while i < 3:                                                                #开始循环,只要用异常登录不超过三次
     7     name  = input('请输入用户名:')                                            #输入用户名
     8 
     9     lock_file = open('user_lock.txt','r+')                                  #打开锁定用户文件,检查登录用户是否被锁定(r+--读写),文件名前直接加路径
    10     lock_list = lock_file.readlines()                                       #逐行读取锁定用户记录文件
    11 
    12     for lock_line in lock_list:                                             #循环读取的锁定用户记录
    13         lock_line = lock_line.strip('
    ')                                   #去掉换行符
    14         if name == lock_line:                                               #如果输入用户被锁定,直接退出
    15             sys.exit('用户%s已锁定' %name)                                    #输出提示用户被锁定
    16 
    17     user_file = open('user.txt','r')                                        #打开用户文件(r--只读)
    18     user_list = user_file.readlines()                                       #逐行读取用户文件
    19 
    20     for user_line in user_list:                                             #循环读取的用户记录
    21         (user,passwd) = user_line.strip('
    ').split()                       #分别获取帐号和密码信息
    22         if name == user:                                                    #如用户名正常匹配
    23             j = 0
    24             while j < 3:                                                    #只要用户密码异常不超过3次就不断循环
    25                 password = getpass.getpass('请输入密码:')                    #输入隐藏密码,import getpass
    26                 if passwd == password:                                      #如果密码正确,提示欢迎登录
    27 #                    print('登录成功%s'%name)
    28                     sys.exit('用户%s登录成功'%name)                           #输出欢迎用户登录,正常退出
    29                 else:
    30                     if j != 2:                                              #j!=2时继续循环
    31                         print('用户 %s 密码错误,请重新输入,还有 %d 次机会' % (name,2 - j))#提示还剩余0次机会了
    32                 j += 1                                                      #密码输入错误后,循环值增加1
    33             else:                                                           #密码输入三次错误后,将该用户追加到LOCK文件
    34                 lock_file.write(name +'
    ')
    35                 sys.exit('用户 %s 达到最大登录次数,将被锁定并退出' % name)
    36         else:
    37             pass                                                            #当用户没匹配时,跳过并继续循环
    38     else:
    39         if i != 2: #i!=2是循环
    40             print('用户 %s 不存在,请重新输入,还有 %d 次机会' % (name,2 - i))   #提示还剩余0次机会了
    41         i += 1                                                             #当用户输入错误时,循环值增加1
    42 else:
    43     sys.exit('用户 %s 不存在,退出' % name)                                   #用户输入三次错误后,异常退出
    44 
    45 lock_file.close()                                                          #关闭LOCK文件
    46 user_file.close()                                                          #关闭帐号文件
    View Code
  • 相关阅读:
    如何禁用Xcode7下iOS9 App传输安全,并修复无法连接服务器错误
    iOS单例清除
    Git忽略规则及.gitignore规则不生效的解决办法
    javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:
    树莓派 远程桌面 设置显示中文
    在IIS Express中调试时无法读取配置文件 错误
    Win7 下IIS(7.5)发布 ASP.NET MVC
    .Net中使用com组件后发生System.ArithmeticException异常的解决办法(Message=算术运算中发生溢出或下溢。)
    CodeSimth
    windows 开机启动 CassiniDev(IIS替代软件)
  • 原文地址:https://www.cnblogs.com/fameg/p/9652178.html
Copyright © 2011-2022 走看看