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中的anydbm模版和shelve模版使用指南
Jul 09 Python
Python学习入门之区块链详解
Jul 25 Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
pyqt5实现登录界面的模板
May 30 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
python-numpy-指数分布实例详解
Dec 07 Python
python数据爬下来保存的位置
Feb 17 Python
pycharm sciview的图片另存为操作
Jun 01 Python
Python requests上传文件实现步骤
Sep 15 Python
python实现文件分片上传的接口自动化
Nov 19 Python
如何通过python检查文件是否被占用
Dec 18 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验证码的制作思路和实现方法
2015/11/12 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
JS简单计算器实例
2015/01/20 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
python入门教程之识别验证码
2017/03/04 Python
详解小白之KMP算法及python实现
2019/04/04 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
python离线安装外部依赖包的实现
2020/02/13 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
会走路的树教学反思
2014/02/20 职场文书
道路交通安全实施方案
2014/03/12 职场文书
基层党组织公开承诺书
2014/03/28 职场文书
初中生活随笔
2015/08/15 职场文书
js中Object.create实例用法详解
2021/10/05 Javascript