python实现简单登陆流程的方法


Posted in Python onApril 22, 2018

登陆流程图:

python实现简单登陆流程的方法

代码实现:

#-*- coding=utf-8 -*-
import os,sys,getpass
'''
user.txt 格式
账号 密码 是否锁定 错误次数
jack 123 unlock 0
tom 123 unlock 0
lily 123 unlock 0
hanmeimei 123 unlock 0
lucy 123 unlock 0
'''
# 定义写入文件的函数
def wirte_to_user_file(users,user_file_path):
	user_file = file(user_file_path,'w+')
	for k,v in users.items():
		line = []
		line.append(k)
		line.extend(v)
		user_file.write(' '.join(line)+'\n')
	user_file.close()
# 判断用户文件是否存在,不存在直接退出
user_file_path = 'users.txt'
if os.path.exists(user_file_path):
	user_file = file(user_file_path,'r')
else:
	print 'user file is not exists'
	sys.exit(1)
# 遍历用户文件,将用户包装成字典
users_dic = {}
for user_line in user_file:
	user = user_line.strip().split()
	users_dic[user[0]] = user[1:]
'''
{
	'lucy': ['123', 'unlock', '0'], 
	'lily': ['123', 'unlock', '0'], 
	'jack': ['123', 'unlock', '0'], 
	'hanmeimei': ['123', 'unlock', '0'], 
	'tom': ['123', 'unlock', '0']
}
'''
while True:
	# 输入账号
	input_name = raw_input('please input your username,input "quit" or "q" will be exit : ').strip()
	# 判断是否为退出
	if input_name == 'quit' or input_name == 'q':
		sys.exit(0)
	# 输入密码
	password = getpass.getpass('please input your password:').strip()
	# 判断账号是否存在、是否锁定
	if input_name not in users_dic:
		print 'username or password is not right'
		break
		
	if users_dic[input_name][1] == 'lock':
		print 'user has been locked'
		break
	
	# 判断密码是否正确,正确,登陆成功
	if str(password) == users_dic[input_name][0]:
		print 'login success,welcome to study system'
		sys.exit(0)
	else:
		# 如果密码错误则修改密码错误次数
		users_dic[input_name][2] = str(int(users_dic[input_name][2])+1)
		# 密码错误次数大于3的时候则锁定,并修改状态
		
		if int(users_dic[input_name][2]) >= 3:
			print 'password input wrong has 3 times,user will be locked,please connect administrator'
			users_dic[input_name][1] = 'lock'
			wirte_to_user_file(users_dic,user_file_path)
			break
		
		wirte_to_user_file(users_dic,user_file_path)

以上这篇python实现简单登陆流程的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中subprocess模块用法实例详解
May 20 Python
Ubuntu下安装PyV8
Mar 13 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Pytorch Tensor基本数学运算详解
Dec 30 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
pytorch Dropout过拟合的操作
May 27 Python
python实现简单的三子棋游戏
Apr 28 Python
Python 实现选择排序的算法步骤
Apr 22 #Python
python学习基础之循环import及import过程
Apr 22 #Python
Python中循环引用(import)失败的解决方法
Apr 22 #Python
Python 数据处理库 pandas进阶教程
Apr 21 #Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 #Python
将python代码和注释分离的方法
Apr 21 #Python
Python基于百度AI的文字识别的示例
Apr 21 #Python
You might like
PHP 高手之路(三)
2006/10/09 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
网站上面有这种切换效果
2006/06/26 Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
简单谈谈React中的路由系统
2017/07/25 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python装饰器用法实例总结
2018/05/26 Python
Python3 翻转二叉树的实现
2019/09/30 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
python 实现性别识别
2020/11/21 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
党员岗位承诺口号大全
2014/03/28 职场文书
评职称个人总结
2015/03/05 职场文书
入党介绍人考察意见
2015/06/01 职场文书
大学生活委员竞选稿
2015/11/21 职场文书