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 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

Python学习(二) 登陆接口的相关文章

[Python 学习] 二、在Linux平台上使用Python

这一节,主要介绍在Linux平台上如何使用Python 1. Python安装. 现在大部分的发行版本都是自带Python的,所以可以不用安装.如果要安装的话,可以使用对应的系统安装指令. Fedora系统:先以root登入,运行 yum install python Ubuntu系统:在root组的用户, 运行 sudo apt-get install python 2. 使用的Python的脚本 Linux是一个以文件为单位的系统,那么我们使用的Python是哪一个文件呢? 这个可以通过指令

OpenCV for Python 学习 (二 事件与回调函数)

今天主要看了OpenCV中的事件以及回调函数,这么说可能不准确,主要是下面这两个函数(OpenCV中还有很多这些函数,可以在 http://docs.opencv.org/trunk/modules/highgui/doc/user_interface.html 找到,就不一一列举了),然后自己做了一个简单的绘图程序 函数如下: cv2.setMouseCallback(windowName, onMouse[, param]) cv2.createTrackbar(trackbarName,

python之编写登陆接口(第一天)

作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 帐号文件account.txt内容如下: sam 123 david 12 kevin 123lin 12 tailen 123 jack 12 锁文件account_lock.txt默认为空 1.流程图如下: 二.针对帐号文件里的不存在的用户也可以进行判断并锁定,针对用户和密码共有三次错误重试机会 1 #_*_ coding:utf-8 _*_ 2 3 import sys,os,getpass 4 5 os.syst

python基础:用户登陆接口

个人练习(一) 刚入门的一个小白,找本书看完了基础,自己根据条件写了一个简单的小练习: 这个接口主要实现1.在本目录下创建一个保存账户和密码的txt文件 2.支持用户自我创建账户和密码 3.能够查询到用户的数量 4.如果更改掉基于目录下创建的txt文件,可能会导致错误 算是我自学记录努力的一个过程,每天不断在学习中!有什么多余或者更好的建议往大神指点指点..帮助下我这小白... 代码如下: def Main(): #选择界面自动运行函数 is_choice = Prompt() #is_choi

python学习笔记(接口自动化框架)

之前是利用python自带的unittest测试框架 这次自己设计一个 之后再一点点往里面加功能 (ps:当然这个框架真的是很简单..很简单...很简单...) excel文件格式: 1 #!/usr/bin/env python 2 # -*- coding: utf_8 -*- 3 4 import xlrd 5 import json 6 7 8 class CreateExcel: 9 def __init__(self): 10 pass 11 12 @classmethod 13 d

Python学习二---字符串

一.字符串 1.1.字符串和转义字符 转义字符需要使用\来表示 1.2.字符串连接 print 字符串1 字符串2,打印出来的字符串直接连接在一起没有空格 print 字符串1,字符串2,打印出来的字符串直接连接在一起有空格 也可以使用变量赋值的方式来输出 字符串,使用+号将变量连接在一起,结果同上 1.3.str()与repr() str()将值转换为字符串 repr()返回值字符串表示形式,只是返回值, 并不转换 二.input与raw_input() input():输入的值默认是赋值运算

python————————1(登陆接口)

n="rcxer" p="123456"#内置好用户名密码 s=0#输入错误的次数,当输入3次错误时程序自动退出 for i in range(3): name=input("name:") password=input("password:") if name==n and p==password: print("认证成功,欢迎登陆") break else: s+=1 print("输入错误&

python学习二(计算机语言与sublime 环境设置)

计算机语言     机器语言          - 机器语言通过二进制编码来编写程序          - 执行效率高,编写太麻烦     汇编语言        - 使用符号来代替机器码        - 编写程序时,不需要使用二进制,而是直接编写符号        - 编写完成后,需要将符号转换为机器码,然后再由计算机执行        - 将机器码转换为符号的过程,称为反汇编        - 汇编语言一般只适用于一些硬件,兼容性比较差     高级语言        - 高级语法的语法基

Python学习(二) Django安装配置

上一节介绍了如何搭建Python的开发环境,这次介绍一下如何搭建Django的开发环境. 第一.下载Django Django跟Python的版本对应 Django version Python versions 1.4 2.5, 2.6, 2.7 1.7, 1.8 2.7 and 3.2, 3.3, 3.4 1.9 2.7, 3.3, 3.4, 3.5 这里我选择的是1.8.2,下载地址:https://www.djangoproject.com/download/ 第二.安装Django 下

Python学习二(生成器和八皇后算法)

看书看到迭代器和生成器了,一般的使用是没什么问题的,不过很多时候并不能用的很习惯 书中例举了经典的八皇后问题,作为一个程序员怎么能够放过做题的机会呢,于是乎先自己来一遍,于是有了下面这个ugly的代码 def table(m, lst): '''绘制m列的棋盘,每行有个皇后旗子''' head = '┌' + '─┬' * (m-1) + '─┐' row = lambda x: '│' + ' │' * x + '╳│' + ' │' * (m - x - 1) trow = '├' + '─