浅谈Python学习的第一个小程序,用户登陆接口的开发
代码已实现功能:
1、用户登陆平台需要验证用户名和密码信息是否正确
2、允许用户尝试登陆三次,三次后强制退出登陆端。
3、同一账户连续登陆三次失败写入黑名单。管理员手动解黑后可正常登陆。
待实现功能:
1、实现黑名单用户30分钟自动解黑
2、调用DB用户数据,当前使用的文本列表
3、实现用户登陆验证码功能
4、暂时就想到这些没实现的功能,以后再补充,hehe
编写逻辑:
1、读取用户列表和黑名单列表
2、临时用户变量,记录用户登陆的临时元组
3、设置用户可登陆尝试次数
4、判断用户传参(用户名)是否存在于用户列表中,存在执行下一步判断
5、判断用户传参(用户名和密码)是否匹配,匹配一致登陆成功
6、判断用户传参(用户名和密码)是否匹配,匹配不一致,用户重新输入(限制3次,记录用户名到临时用户变量),使用不同用户尝试超过3次退出
7、判断用户传参(用户名和密码)是否匹配,匹配一致登陆成功
8、判断用户传参(用户名和密码)是否匹配,匹配不一致,并且同一用户尝试3次,将用户写入黑名单,退出程序
9、人工删除黑名单中的账号后,账号恢复正常
账号信息和黑名单格式
代码分享:
#! /usr/bin/env python# -*- coding: utf-8 -*-# Author:Jor Babeimport getpass,random,time,datetime# user name listfile_object = open("user_list.txt")userlist = file_object.read()userses = userlist.split("\n")# locked user name listfile_error = open("user_error.txt")usererror = file_error.read() usernames = []count = 0countb = 0 while count < 3 and countb < 3: username = input("username:") password = getpass.getpass("password:") # password checkoutuserpasseord = username userpasseord += password userpacode = userses.count(userpasseord) # username checkoutnumb = userlist.count(username) numer = usererror.count(username) usernames.append(username) numername = usernames.count(username) if numb == 0 or numer == 1: print("Incorrect or locked user name!") elif numb == 1 and userpacode == 1: print("Welcome user {name} login ...".format(name=username)) break # login = input(input(username))elif numb == 1 and userpacode != 1: if numername == 3: # blacklistotherStyleTime = (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S") f = open(‘user_error.txt‘, ‘a‘) f.write(str(otherStyleTime)) f.write(‘\t‘) f.write(str(username)) f.write(‘\n‘) f.close() print("The user logged in failed to lock the account three times!") else: print("Invalid current password!") countb += 1else: print("Invalid username or password!") count += 1print("You have tried to log in too many times, please relogin to the client.")
原文地址:https://www.cnblogs.com/jorbabe/p/8228880.html
时间: 2024-09-30 15:48:53