Python实践(一) 登陆接口

浅谈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 Babe
import getpass,random,time,datetime
# user name list
file_object = open("user_list.txt")
userlist = file_object.read()
userses = userlist.split(" ")
# locked user name list
file_error = open("user_error.txt")
usererror = file_error.read()

usernames = []
count = 0
countb = 0

while count < 3 and countb < 3:

username = input("username:")
password = getpass.getpass("password:")
# password checkout
userpasseord = username
userpasseord += password
userpacode = userses.count(userpasseord)
# username checkout
numb = 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:
# blacklist
otherStyleTime = (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S")
f = open('user_error.txt', 'a')
f.write(str(otherStyleTime))
f.write(' ')
f.write(str(username))
f.write(' ')
f.close()
print("The user logged in failed to lock the account three times!")
else:
print("Invalid current password!")
countb += 1
else:
print("Invalid username or password!")
count += 1
print("You have tried to log in too many times, please relogin to the client.")



原文地址:https://www.cnblogs.com/jorbabe/p/8228880.html