Python3简单登录接口编写及遇到的问题分享
2024-08-27 02:29:03
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.可以增加注册系统,丰富登录界面等。
最新文章
- AsyncTask 轻量级的异步类
- GPU 优化总结
- Java 炫舞按键功能 DancingPlay (整理)
- Oracle Lock 概述
- 设计模式之观察者模式(Observer Pattern)
- Iconfinder 如何杜绝盗版,哈希算法检测图像重复
- Android非常有用的开源库介绍整理
- linux下libreoffice安装测试
- NFS启动时报错Linux NFS:could not open connection for tcp6
- 手机上的ROM与RAM
- 批量执行工具PSSH详解
- python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍
- Dubbo学习笔记8:Dubbo的线程模型与线程池策略
- JVM调优-GC参数
- 快学Scala 1
- 【转载】Please configure Android Sdk(android studio)解决办法
- ADHOC Report 配置
- css方法div固定在网页底部
- 关于谷歌浏览器62版本之后引用video.js不能自动播放的问题(Cross-origin plugin content from http://vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf must have a visible size larger than 400 x 300 pixels, or it will be blocked.)
- spring.net aop 讲解
热门文章
- python mysql安装
- 表空间常用sql汇总
- Oracle 时段负载情况
- February 8 2017 Week 6 Wednesday
- WEB开发的jsp例子标签库(jstl)的使用
- (转)对于ESP、EBP寄存器的理解
- springmvc常用注解标签详解(转载)
- eclipse run on server 时 报的错误APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
- Ubuntu14.04.3,apt-get出现dpkg: error processing package xxx (--configure)和cups-daemon错误的解决方案
- php无极限分类函数