码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习(二) 登陆接口

时间:2018-01-07 20:24:16      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:count   写入   判断   log   元组   src   img   random   auth   

浅谈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("\n")
# 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(\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 += 1
else:
print("Invalid username or password!")
count += 1
print("You have tried to log in too many times, please relogin to the client.")


Python学习(二) 登陆接口

标签:count   写入   判断   log   元组   src   img   random   auth   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!