Python编写登陆接口的方法


Posted in Python onJuly 10, 2017

本文实例为大家分享了Python编写登陆接口的具体代码,供大家参考,具体内容如下

1.输入用户名密码;

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

3.错误三次后,账号被锁定。 

账号文件:user.txt

锁定文件:locked.txt

流程图如下:

Python编写登陆接口的方法

# -*- coding:utf-8 -*-
# Author Caoxl
import sys

account_file='E:\user.txt'
locked_file='E:\locked.txt'

def deny_account(username):
 print('您的用户已被锁定')
 with file(locked_file,'a') as deny_f:
  deny_f.write('\n'+username)

def main():
 retry_count=0
 retry_limit=3         #循环次数
 while retry_count<retry_limit:     #用户最多重复登陆3次
  username=raw_input('请输入您的用户名:') #引导用户输入用户名
  with file(locked_file,'r') as lock_f:
   #采用with打开方式,将locked_file赋值lock_f,防止忘记f.close()关闭文件
   for line in lock_f.readlines():  #循环遍历每一行的内容
    if len(line)==0:     #对每一行内容进行处理
     continue
    if username == line.strip():
     #利用.strip这个函数去掉换行符,来对username进行匹配。
     sys.exit('用户已经被锁定!')
  if len(username)==0:  #提示用户登录时,用户名不能为空!
   print('用户名不能为空,请重新输入')
   continue

  password= raw_input('请输入您的密码:') #引导用户输入密码
  with file(account_file,'r') as account_f:
   flag= False

   for line in account_f.readlines():
    user,pawd=line.strip().split()  #将用户名和对应密码进行处理
    if username==user and password==pawd: #判断用户名和密码
     print('success!')
     flag=True
     break      #退出for循环
  if flag==False:      #避免用户在三次输入后,依然提示重新输入。
   if retry_count<2:
    print('您输入的用户名或密码有误,请重新输入!')

   retry_count+=1

  else:
   print('欢迎用户登陆成功!!')
   break
   # 加标志位是为了用户能够成功推出整个循环!
   deny_account(username)
   #对应上面的def函数把锁定账号加入文档中去

if __name__ == '__main__':
 main()

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

Python 相关文章推荐
跟老齐学Python之永远强大的函数
Sep 14 Python
在Python的web框架中编写创建日志的程序的教程
Apr 30 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
Windows和Linux下Python输出彩色文字的方法教程
May 02 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
由面试题加深对Django的认识理解
Jul 19 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 Python
python如何操作mysql
Aug 17 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
CentOS中升级Python版本的方法详解
Jul 10 #Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 #Python
Python 实现数据库更新脚本的生成方法
Jul 09 #Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 #Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 #Python
python3 shelve模块的详解
Jul 08 #Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 #Python
You might like
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php自定义错误处理用法实例
2015/03/20 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
JS代码优化的8点建议
2020/02/04 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
python简单实例训练(21~30)
2017/11/15 Python
Python中按值来获取指定的键
2019/03/04 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python语言基本语句用法总结
2019/06/11 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
详解Python3 pandas.merge用法
2019/09/05 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
大学生毕业自荐信
2013/10/10 职场文书
班级寄语大全
2014/04/10 职场文书
2015暑假假期总结
2015/07/13 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
2016年清明节寄语
2015/12/04 职场文书
合作协议书格式范本
2016/03/21 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
如何使用SQL Server语句创建表
2022/04/12 SQL Server
python和anaconda的区别
2022/05/06 Python