Python3简单登录接口编写及遇到的问题分享
1.程序目标
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
2.思路
利用python中的pickle模块,实现用户登录信息(采用dict)和被锁定用户信息(采用list)的存储。所以我预先存储了一些用户信息和被锁定用户信息在两个.pkl文件里面。
输入用户名后先判断是否在锁定用户的list里面,如果在直接print账户被锁定。若不在,则判断账户密码是否有效。
3.程序实现
import pickle #导入pickle模块
pickle_file=open('userandcodes.pkl','rb')
userdict=pickle.load(pickle_file) #打开存储用户密码和账户的文件,并把里面的字典类型给userdict
pickle_file.close() pickle_file1=open('userlock.pkl','rb')
locklist=pickle.load(pickle_file1) #打开被锁定用户的文件,并把里面的列表类型给locklist count=0
while count<3:
username = input('username:')
while username not in userdict.keys():
print('Wrong Username,input again!') #检测用户名是否存在,直至用户输入正确的用户名(输错用户名不被计数)
username = input('username:')
password = input('password:')
if username not in locklist:
if password==userdict.get(username):
print('Welcome!.The user {0} loging...'.format(username))
break
else:
print('Wrong password....Input again')
count+=1
else:
print('You have tried 3 times before,your username has been locked')
break
else:
print('You have tried 3 times,your username is being locked')
locklist.append(username)
pickle_file1 = open('userlock.pkl', 'wb')
pickle.dump(locklist,pickle_file1) pickle_file1.close()
4.遇到几个问题
A.pickle.load()老是报'' EOFError: Ran out of input ''(6,7行),最后发现是我pickle_file1文件是空文件导致的,所以我添加了几个元素到文件里面的locklist后问题解决。
B.字典dict访问values时,如果key是一个变量可以通过内置函数get()访问.
5.待改进的地方
a.仅限于同一账户密码输错三次锁定。在用户名正确的情况下,若三次输入的用户名不同,则也会被计入次数。
b.可以增加注册系统,丰富登录界面等。
Python3简单登录接口编写及遇到的问题分享的更多相关文章
- 关于python怎样编写登录接口
把今天的成果展示下,关于怎么用python编写登录接口, 要求是 1.输入用户名和密码 2.输错三次密码就锁定用户 3.认证成功后输出欢迎信息 账号文件内容如下: sanjiang sanjian ...
- python基础一之课后作业:编写登录接口
1 # Author : Mamba 2 3 #python基础一之课后作业:编写登录接口 4 5 # 输入用户名密码 6 # 认证成功后显示欢迎信息 7 # 用户名3次输入错误后,退出程序 8 # ...
- (转)python编写登录接口
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://506554897.blog.51cto.com/2823970/1907262 ...
- jmeter之登录接口的一次简单压测与分析
前言:登录接口的一次简单压测与分析 1.接口文档 2.配置元件 3.结果分析 1.接口文档 a.拿到接口文档 接口地址:http://localhost:8080/jpress/admin/login ...
- python3 登录接口
登录接口 功能: 输入用户名(有一个用户名及对应的密码表) 认证成功后显示欢迎信息 输错三次后锁定(即第四次提示该账户已被锁定)用户登录锁定记录写到一个文件中. 用到:自定义函数.列表.字典 #Au ...
- 纯JSP实现简单登录跳转
1.JSP介绍 JSP即Java Server Pages,JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑.网页还能通过tags和script ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.6 版本 - SSO单点登录接口
当开发的系统多了.用户多了.合作伙伴多了.对接厂商多了.开发人员多了.部署的服务器也多了,各种安全问题就暴露出来了. 如何安全的把这些系统集成在一起?实现集群的单点登录.严格统一的用户安全体系管理? ...
- 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
如何简单实现接口自动化测试(基于 python) 2017年09月05日 11:52:25 阅读数:9904 GitChat 作者:饿了么技术社区 原文:如何简单实现接口自动化测试(基于 python ...
- s12-day01-work01用户登录接口
README # README.md # day001-work-1 @南非波波 功能实现:登录接口 流程图:  程序实现: 1. ...
随机推荐
- NgModelController: $setViewValue,$render,Formatter, Parser
NgModelController为ngModel directive提供了API.这个controller包含了关于data-binding,validation,css update, value ...
- 从Event Loop谈JS的运行机制
这里主要是结合Event Loop来谈JS代码是如何运行的. 事件循环对于我们平时开发可以说是特别重要,可以让我们写出更好的代码. 到这里相信我们已经知道了JS引擎是单线程,而且这里会用到前面说的的几 ...
- nginx限制IP恶意调用短信接口处理方法
真实案例: 查看nginx日志,发现别有用心的人恶意调用API接口刷短信: /Jun/::: +] "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) ...
- shell----删除文件中的^M
在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”.有几种方法可以处理. 1.使用vi的替换功能.启动vi,进入命令模式,输入以下命令: :%s/^M$/ ...
- 第二次作业——MathExamLv2
MathExamLv2--林志松 211406285 李明康 211606314 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...
- BIND简易教程(0):在Ubuntu下源码安装BIND(其实跟前面的教程没太大关系)
之前介绍过BIND的基本使用啦.关于BIND的入门级使用方法见:http://www.cnblogs.com/anpengapple/p/5877661.html简易教程系列,本篇只讲BIND安装. ...
- Django admin页面 显示中文问题
http://127.0.0.1:8000/admin/ 该页中实现中文显示. 1. 页面显示的数据表表名 实现中文显示. models.Model类的内部类Meta,有两个特殊的选项:verbos ...
- 池化层pooling
from mxnet import autograd,nd from mxnet import gluon,init from mxnet.gluon import nn,loss as gloss ...
- [19/04/04-星期四] IO技术_CommonsIO(通用IO,别人造的轮子,FileUtils类 操作文件 & IOUtilsl类 操作里边的内容 )
一.概念 JDK中提供的文件操作相关的类,但是功能都非常基础,进行复杂操作时需要做大量编程工作.实际开发中,往往需要 你自己动手编写相关的代码,尤其在遍历目录文件时,经常用到递归,非常繁琐. Apac ...
- 获取Windows安装日期