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实现命令行闹钟脚本实例
Sep 05 Python
Python实现选择排序
Jun 04 Python
python flask中静态文件的管理方法
Mar 20 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
python找出完数的方法
Nov 12 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
Python列表对象实现原理详解
Jul 01 Python
Python类的动态绑定实现原理
Mar 21 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
详解torch.Tensor的4种乘法
Sep 03 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
Django xadmin安装及使用详解
Oct 26 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 各种排序算法实现代码
2009/08/20 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
原生js轮播特效
2017/05/18 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
python 获取图片分辨率的方法
2019/01/08 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
Django CBV类的用法详解
2019/07/26 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
介绍java中初始化块的使用
2012/09/11 面试题
会计毕业生自荐信
2013/11/21 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
《理想》教学反思
2014/02/17 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
生物技术专业求职信
2014/06/10 职场文书
学习十八大的心得体会
2014/09/01 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
中标通知书范本
2015/04/17 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python