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中的zip函数使用示例
Jan 29 Python
python numpy格式化打印的实例
May 14 Python
wxPython实现整点报时
Nov 18 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
python3实现常见的排序算法(示例代码)
Jul 04 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
电子信息毕业生自荐信
2013/11/16 职场文书
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
美术毕业生求职信
2014/02/25 职场文书
2014公司年终工作总结
2014/12/19 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
自荐信范文
2019/05/20 职场文书
Java spring单点登录系统
2021/09/04 Java/Android
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技