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基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 Python
python抓取网页图片示例(python爬虫)
Apr 27 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
对Python3中的input函数详解
Apr 22 Python
Windows下python3.7安装教程
Jul 31 Python
对Python中plt的画图函数详解
Nov 07 Python
python将视频转换为全字符视频
Apr 26 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 Python
pytorch Dropout过拟合的操作
May 27 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根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP 正则表达式小结
2015/02/12 PHP
PHP获取文件行数的方法
2015/06/10 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
python中的json总结
2018/10/11 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
python ssh 执行shell命令的示例
2020/09/29 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
电力安全事故反思
2014/04/27 职场文书
2014年学前班工作总结
2014/12/08 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python