• python 登陆接口


     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('
    ')            #使用.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('
    ').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 + '
    ')      #用户名密码输入次数超过3次的用户添加到account_lock文件中
    33                 #lock_f.write('%s 
    ' %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文件
    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    Spring Security
    用过sessionid防钓鱼
    request获取json
    相对于Statement,PreparedStatement的优点是什么?
    jquery中$.get()提交和$.post()提交有区别吗?
    相对于Statement,PreparedStatement的优点是什么?
    什么是Redis?
    如何解决表单提交的中文乱码问题
    execute,executeQuery,executeUpdate的区别是什么?
    根据你以往的经验简单叙述一下MYSQL的优化
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/8903400.html
Copyright © 2020-2023  润新知