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中处理字符串之endswith()方法的使用简介
May 18 Python
Python文件处理
Feb 29 Python
python虚拟环境迁移方法
Jan 03 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
Python笔记之代理模式
Nov 20 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
python 如何设置守护进程
Oct 29 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写的serv-u的web申请账号的程序
2006/10/09 PHP
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
PHP正则验证Email的方法
2015/06/15 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
Python切片用法实例教程
2014/09/08 Python
详解Python中with语句的用法
2015/04/15 Python
python之django母板页面的使用
2018/07/03 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python实现猜拳游戏项目
2020/11/30 Python
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
自荐信格式的六要素
2013/09/21 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
律政俏佳人观后感
2015/06/09 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
js作用域及作用域链工作引擎
2022/07/07 Javascript