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
  • 相关阅读:
    CSS去掉 a 标签点击后出现的虚线框
    AMD 和 CMD的区别
    sublime text常用快捷键
    jsonp详解
    JSON详解
    JS知识总结
    input 单选按钮radio 取消选中(转载)
    koala 编译scss不支持中文解决方案
    Spring事务的传播行为 @Transactional(转)
    Ubuntu下JDK+Tomcat+MySql环境的搭建
  • 原文地址:https://www.cnblogs.com/fameg/p/9652178.html
Copyright © 2011-2022 走看看