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对列表排序的方法实例分析
May 16 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
python Gunicorn服务器使用方法详解
Jul 22 Python
python实现静态服务器
Sep 05 Python
Python标准库itertools的使用方法
Jan 17 Python
大数据分析用java还是Python
Jul 06 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
python实现图像高斯金字塔的示例代码
Dec 11 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/14 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue实现购物车的监听
2020/04/20 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
pytorch forward两个参数实例
2020/01/17 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
Python常用类型转换实现代码实例
2020/07/28 Python
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
高中语文教学反思
2014/01/16 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
模范教师事迹材料
2014/12/16 职场文书
捐助倡议书
2015/01/19 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript