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程序的执行原理
Apr 11 Python
python 基础教程之Map使用方法
Jan 17 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
django中send_mail功能实现详解
Feb 06 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
python 计算一个字符串中所有数字的和实例
Jun 11 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
Python中无限循环需要什么条件
May 27 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
python实现大文本文件分割成多个小文件
Apr 20 Python
Python 读写 Matlab Mat 格式数据的操作
May 19 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
xml+php动态载入与分页
2006/10/09 PHP
处理php自动反斜杠的函数代码
2010/01/05 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
javascript高亮效果的二种实现方法
2008/09/14 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
家庭教育先进个人事迹材料
2014/01/24 职场文书
生物制药专业求职信
2014/03/11 职场文书
商场主管竞聘书
2014/03/31 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
食品安全处置方案
2014/06/14 职场文书
离职证明标准格式
2014/09/15 职场文书
质量主管工作职责
2014/09/26 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL