• 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.")


    
    
  • 相关阅读:
    简单图片预加载
    前端进行图片压缩
    原生js实现拖动滑块验证
    chrome和IE下的滚动条样式修改
    简单canvas刮刮乐
    时间轴
    简单边框动画
    滚动指示器
    美化checkbox多选框
    将过长的文字改用省略号显示
  • 原文地址:https://www.cnblogs.com/jorbabe/p/8228880.html
Copyright © 2020-2023  润新知