#/usr/bin/env python
#yehui
'''
作业一:博客 作业二:编写登陆接口 输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
'''
import getpass, os, pickle class PathJudge:
def __init__(self):
self.path1 = "userinfo"
self.path2 = "user_dict_info" def judge_path(self): ##检查文件夹是否存在
if os.path.exists('userinfo'):
print("file %s is exists and then pass" % self.path1)
else:
os.mkdir(self.path1) ##创建一级目录,如果要创建多级目录需要用到" os.makedirs('多级目录的详细路径') "
if os.path.exists('user_dict_info'):
print("file %s is exists and then pass" % self.path2)
else:
os.mkdir(self.path2) class PickleDic:
def __init__(self):
self.pickle_file = "user_dict_info/dict_info.pickle" def pickle_dict(self, dic): ##备份用户列表
self.dumped = dic
with open(self.pickle_file, 'wb') as self.data: ##不管备份或者读取的时候都必须要先读取该备份列表
pickle.dump(self.dumped, self.data) def load_dict(self): ##读取用户列表
with open(self.pickle_file, 'rb') as self.load:
self.new_dict = pickle.load(self.load)
self.load.flush()
return self.new_dict class LongIn:
def __init__(self):
self.counts = 0
self.dict = PickleDic().load_dict() def login(self):
while self.counts < 10:
self.counts += 1
self.name = input("username: ")
self.pwd = getpass.getpass("password: ")
if self.name not in self.dict :print("用户不存在!");break
self.verify = list(self.dict[self.name].values())[0]
if self.verify >= 3:exit("你的帐号已经被锁定")
if self.pwd in self.dict[self.name].keys():
print("哥们,欢迎登上了通往未来的列车!")
break
else:
print("密码错误!")
self.verify += 1
print("你错误的次数是%s, 如错误达到3次将被锁定" % self.verify)
for self.k in self.dict[self.name].keys():
(self.dict[self.name])[self.k] = self.verify
self.back = PickleDic().pickle_dict(self.dict) class ClearLock: ##这段代码是为了重置每天的锁定,正常情况下是跟该模块分开并且每天24点定时整执行一次
def __init__(self):
self.dict_userinfo = {'fdd': {'123': 0}, 'fgg': {'234': 0}, 'djj': {'456': 0}}
def clear_lock(self):
self.clock = PickleDic()
self.clock.pickle_dict(self.dict_userinfo)
print("锁定器清理完成! %s" % self.clock.load_dict())
if __name__ == '__main__':
path = PathJudge()
path.judge_path() # c = ClearLock() ##如果为了是第一次执行,或者不存在用列,把这两个注释去掉.
# c.clear_lock() l = LongIn()
l.login()

python3编写登录接口的更多相关文章

  1. 关于python怎样编写登录接口

    把今天的成果展示下,关于怎么用python编写登录接口, 要求是   1.输入用户名和密码 2.输错三次密码就锁定用户 3.认证成功后输出欢迎信息 账号文件内容如下: sanjiang sanjian ...

  2. python基础一之课后作业:编写登录接口

    1 # Author : Mamba 2 3 #python基础一之课后作业:编写登录接口 4 5 # 输入用户名密码 6 # 认证成功后显示欢迎信息 7 # 用户名3次输入错误后,退出程序 8 # ...

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

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

  4. Python之编写登录接口

    作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 帐号文件account.txt内容如下: liuyueming 123zhangsan 123lisi 123 锁文件acc ...

  5. 老男孩Day1作业(一):编写登录接口

    需求:编写登陆接口1. 用户输入帐号密码进行登陆2. 用户信息保存在文件内3. 用户密码输入错误三次后锁定用户 1)编写思路 编写思路参考下面GitHub链接中的流程图 https://github. ...

  6. Python3简单登录接口编写及遇到的问题分享

    1.程序目标 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 2.思路 利用python中的pickle模块,实现用户登录信息(采用dict)和被锁定用户信息(采用list)的存储.所以我预先 ...

  7. Python3 编写登陆接口

    题目选自 Alex Python自动化开发之路的题目,我是从C++转学Python的,编写的水平有限,轻喷. 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 首先应该有2个txt文件,包含用户 ...

  8. 8.Python编写登录接口

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

  9. python编写登录接口

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

随机推荐

  1. MVC基于Struts2的CRUD,java+bean+struts

    1,所需jar包,将jar包导入lib中 2,项目目录结构 3,struts.xml <?xml version="1.0" encoding="UTF-8&quo ...

  2. 常用前端布局,CSS技巧介绍

    常用前端布局,CSS技巧介绍 对前端常用布局的整理总结,并对其性能优劣,兼容等情况进行介绍 css常用技巧之可变大小正方形的绘制 1:若通过设置width为百分比的方式,则高度不能通过百分比来控制. ...

  3. SVN中各种符号箭头含义

    黄色感叹号(有冲突): -- 这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许 你提交,防止你的提交覆盖 ...

  4. Ajax-URL 防止数据缓存,添加时间戳

    url:CONTEXTPATH + "/dataService/getSourceStatics?type=0&t="+new Date().getTime(),

  5. Hibernate-原生SQL查询

    HQL尽管容易使用,但是在一些复杂的数据操作上功能有限.特别是在实现复杂的报表统计与计算,以及多表连接查询上往往无能为力,这时可以使用SQL(Native SQL)实现HQL无法完成的任务. 1.使用 ...

  6. UI组件之AdapterView及其子类(五)ListView组件和ListActivity

    ListView组件是一个显示组件,继承AdapterView基类,前面已经介绍了分别使用ArrayAdapter,SimpleAdapter,扩展BaseAdapter来为LisView提供列表项h ...

  7. 本地配置 Redis

    1.下载 https://redis.io/ https://github.com/dmajkic/Redis/downloads 2. 2.cmd 运行: 3.切换到另外一个cmd : ok! 关于 ...

  8. java痛苦学习之路[四]---关于struts2-convention-plugin使用

    一.struts2-convention-plugin配置文件具体解释 <constant name="struts.convention.actionConfigBuilder&qu ...

  9. http server优雅启停原理及验证

    问题背景 在 http应用程序重启时,如果直接 kill -9 使程序退出,然后再启动,会存在的问题: 旧的请求未处理完,如果服务端进程直接退出,会造成客户端连接中断(收到 RST) 新请求打过来,服 ...

  10. 31.QT坐标系

    dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include <QLabel> #include ...