简介:1.在本地创建两个文件,一个文件的内容是存储用户名和密码,另一个的内容是存储锁定的用户

         2.登录次数限制为三次,当密码错误三次后,该账号锁定,无法再次登录

#coding=utf-8

user_info_list = []
#打开两个文件
with open('userinfo','rb') as userinfo_file,\
open('locketuser','rb') as locketuser_file:
all_userinfo_file = userinfo_file.read() #获取文件中的内容
all_userinfo_file_list = all_userinfo_file.splitlines() #把文件中的内容按行分割,放入列表中
for user_info_str in all_userinfo_file_list: #获取列表中的每个元素
user_info_tuple = tuple(user_info_str.split()) #把每个元素保存为一个数组
user_info_list.append(user_info_tuple) #把每个数组添加到一个列表中
user_info_dict = dict(user_info_list) #把列表转为一个字典 all_locketuser_file = locketuser_file.read()
user_locket_info_list = all_locketuser_file.splitlines()
with open('locketuser','ab') as locketuser_file:
while True:
user_login_flag = False #定义一个是否登录状态的,初始值未false
username_input=raw_input('请输入用户名:')
if username_input in user_locket_info_list: #先判断是否在黑名单中
print ("您已被加入黑名单,请重新输入。。。")
elif username_input in user_info_dict: #判断用户名是否在字典中
count = 3
while True:
pass_word = raw_input("请输入密码:")
if pass_word == user_info_dict.get(username_input): #通过字典,直接判断用户名和密码是否匹配
user_login_flag = True
print ("{0}登录成功,欢迎。。".format(username_input))
break #登录成功,跳出内层while循环
else:
count -= 1 #用户名和密码未匹配成功,可尝试登录次数-1
if count == 0: #可尝试登录次数为0,则退出
locketuser_file.write(username_input)
exit("{0}已被锁定".format(username_input))
print ("{0}密码错误,还剩{1}次机会。。".format(username_input,count)) #可尝试登录次数不为0,可继续尝试登录,给出剩余次数提示
if user_login_flag: #如果登录成功,则跳出外层while循环
break
else:
print ("\033[31m{0}\033[0m,此用户名不存在,请重新输入".format(username_input))

  

python-实现登录接口的更多相关文章

  1. (转)python编写登录接口

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://506554897.blog.51cto.com/2823970/1907262 ...

  2. Python+request 登录接口reponse的返回值token跨py文件的传递《二》

    主要使用场景: 一般我们在进行接口测试时,依赖登录接口后reponse中的某些返回值,因此需要将login接口单独写一个py文件,另外的py文件均可调用login的reponse返回值使用.共用登录接 ...

  3. Python+request 登录接口reponse中token传递给其他接口使用,小示例介绍《一》

    要求: 1.调用登录login 2.调用通过登录接口返回的reponse中的token和uuid,实现test_create_todo接口的测试 实现: 1.login登录接口的调用,直接填写对应的U ...

  4. Python之登录接口

    要求 1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 思路 没有数据库,这里使用本地文件,一共需要两个文件:       黑名单的文件:黑名单里检测,不让登录     用户信息文件:将 ...

  5. 8.Python编写登录接口

    1.python需安装flask,在命令行窗口输入:pip3 install flask 2.代码如下所示: from flask import Flask,request,jsonify,sessi ...

  6. Python实现登录接口

    要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:usern ...

  7. Python作业--登录接口

    作业需求: 编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 实现思路: 1.从文件获取用户名密码 2.判断是否在黑名单中 3.验证用户名密码 成功:输出认证成功 错误:判断验证次 ...

  8. python编写登录接口

    要求: 输入用户名密码     认证成功显示欢迎信息 输错三次以后锁定 代码如下: # Author:YKwhile(True): select=input('请问是注册还是登录') if selec ...

  9. Python 编写登录接口

    流程图: 源码:

  10. python 测试登录接口只返回response200的问题

    但是使用postman测试是有json串的 后来发现postman传参是用的raw格式,raw的格式相当于json 而这里的data其实是form-data格式,需要用json的格式

随机推荐

  1. HTML盒子尺寸的计算

    参考链接http://edu.51cto.com/lesson/id-54739.html

  2. (Frontend Newbie)Web三要素(二)

    上一篇简单介绍了HTML的基本知识以及一些在开发学习过程中容易忽视的知识点,本篇介绍Web三要素中另一个重要组成部分----层叠样式表(Cascading Style Sheets). CSS 按照一 ...

  3. Java原生隐藏字符-工具类

    package com.seesun2012.common.util; /** 隐藏字符-工具类 @author seesun2012@163.com */ public class HiddenCh ...

  4. 世界、国家、省、城市SQL

    共享一份 世界.国家.省.城市最全的SQL(mysql可直接使用),笔者是花了下载币下载的 下载SQL #  pid=0 获取所有国家 #  pid=99999999    获取中国的省.自治区.直辖 ...

  5. Advanced .NET Debugging: Managed Heap and Garbage Collection(转载,托管堆查内存碎片问题解决思路)

    原文地址:http://www.informit.com/articles/article.aspx?p=1409801&seqNum=4 Debugging Managed Heap Fra ...

  6. Spring课程 Spring入门篇 5-1 aop基本概念及特点

    概念: 1 什么是aop及实现方式 2 aop的基本概念 3 spring中的aop 1 什么是aop及实现方式 1.1 aop,面向切面编程,比如:唐僧取经需要经过81难,多一难少一难都不行.孙悟空 ...

  7. PAT 1070 Mooncake

    题目意思能搞成这样我也是服了这个女人了 #include <cstdio> #include <cstdlib> #include <vector> #includ ...

  8. Python爬虫《http和https协议》

    一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...

  9. html和css命名-望文生义

    HTML+CSS命名规则 在一个内容较多的HTML页面中,需要设计许多不同的框架,再为这些不同的框架及内容进行分类,给予相应的名称,从而使得网页结构更加清晰,也为工作提供了方便.许多新手朋友在设计一个 ...

  10. MFCdll的两种调用方法

        有同事问我mfcdll的掉用方法,这里总结了一下.   1 lib库调用   只要VS能找到dll对应的lib和h文件,就可以开发和调试.包含lib和h文件有两个方法. 第一种方法设置路径是 ...