Python实现登录接口的示例代码


Posted in Python onJuly 21, 2017

之前写了Python实现登录接口的示例代码,最近需要回顾,就顺便发到随笔上了

要求:

1.输入用户名和密码

2.认证成功,显示欢迎信息

3.用户名3次输入错误后,退出程序

4.密码3次输入错误后,锁定用户名

Readme:

1.UserList.txt 是存放用户名和密码的文件,格式为:username: password,每行存放一条用户信息

2.LockList.txt 是存放已被锁定用户名的文件,默认为空

3.用户输入用户名,程序首先查询锁定名单 LockList.txt,如果用户名在里面,提示用户被锁定,并退出程序

4.如果用户名不在锁定名单里,程序将查询用户名单 UserList.txt ,如果用户名不在里面,将提示用户不存在,请重新输入,三次输入错误,将退出程序

5.如果用户名在用户名单里,将提示用户输入密码,密码正确,显示欢迎信息;3次输入错误,将锁定此用户名(写入锁定名单)

流程图:

Python实现登录接口的示例代码

代码:

# Joe Young


import os, sys, getpass

os.system('cls')      #调用os模块的system方法传入'cls'参数,清屏

count = 0          #用户名登录次数计数

while count < 3:

  username = input('username:')

  lock_file = open('LockList.txt', 'r+')   #打开LockList.txt文件,权限r+(打开用于读和写文件。文件指针置于该文件的开头)
  lock_list = lock_file.readlines()      #使用readlines()方法逐行读取LockList.txt,生成列表,并赋值给lock_list

  for lock_line in lock_list:
    if username == lock_line.strip('\n'):  #使用strip()方法去掉换行符,判断username是否在LockList.txt
      print('用户名 %s 已被锁定,请联系管理员...' %(username))
      sys.exit(1)             #sys模块的exit()方法表示退出

  with open('UserList.txt', 'r') as user_file:  #打开UserList.txt,权限只读
    user_list = user_file.readlines()      #逐行读取UserList.txt文件,赋值给user_list变量

  for user_line in user_list:
    (user, passwd) = user_line.strip('\n').split(': ') #获取user,passwd的值,用split(': ')实现分割字符串
    if user == username:                #判断用户名是否在UserList.txt文件内
      n = 0                      #密码输入次数计数
      while n < 3:                  #3次输入机会
        password = getpass.getpass('password:')   #使用getpass模块的getpass()方法获取用户输入的密码
        if password == passwd:           #判断密码是否匹配
          print('欢迎 %s 登陆系统!' %(username))
          sys.exit(0)
        else:
          if n != 2:               #n=2时,是最后一次机会,不需要提示还剩下0次机会
            print('密码错误,请重新输入,您还有 %d 次机会\n' %(2-n))
        n += 1                   #密码输入错误,次数+1
      else:
        lock_file.write(username + '\n')      #密码输入错误次数达到3次,把用户名写入LockList.txt文件,锁定用户名
        sys.exit('错误次数过多,用户名已被锁定...')   #程序退出,并输出提示
  else:                          #用户名不存在,执行else语句
    if count != 2:                   #count=2时,是最后一次输入用户名的机会,不用提示还剩下0次机会了
      print('用户名不存在,请重试,您还有 %d 次机会\n' %(2-count))
  count += 1                       #用户名输入错误,count+1

else:                      #用户名输入错误次数达到3次
  sys.exit('输入次数过多,程序已退出...')    #退出程序,并输出提示

lock_file.close()                #关闭LockList.txt文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 判断一个进程是否存在
Apr 09 Python
让python的Cookie.py模块支持冒号做key的方法
Dec 28 Python
python处理图片之PIL模块简单使用方法
May 11 Python
Python 的描述符 descriptor详解
Feb 27 Python
Flask框架WTForm表单用法示例
Jul 20 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
用python写PDF转换器的实现
Oct 29 Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 Python
centos6.4下python3.6.1安装教程
Jul 21 #Python
Python复数属性和方法运算操作示例
Jul 21 #Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 #Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 #Python
详解Golang 与python中的字符串反转
Jul 21 #Python
Python随机生成手机号、数字的方法详解
Jul 21 #Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 #Python
You might like
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
浅谈vue的踩坑路
2017/08/31 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
python3 配置logging日志类的操作
2020/04/08 Python
python利用platform模块获取系统信息
2020/10/09 Python
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
晚宴邀请函范文
2014/01/15 职场文书
捐款倡议书范文
2014/02/02 职场文书
婚前保证书
2014/04/29 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
加班费申请报告
2015/05/15 职场文书
学生会任命书范本
2015/09/21 职场文书
《西门豹》教学反思
2016/02/23 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python