编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

程序逻辑图:

代码:

 #!/usr/bin/env python
#_*_ coding:UTF-8 _*_
#__author__ = lee sir import sys userinfo = r'D:\Python_Scripts\day1\userinfo.txt'
userlock = r'D:\Python_Scripts\day1\userlock.txt' #用户输入用户名和密码
def user_input():
name = input("username:")
passwd = input("password:")
return name,passwd #判断用户是否是已注册用户
def judge_register(user):
with open(userinfo) as fd:
for info in fd.readlines():
username,password = info.split()
if user == username:
return True
else:
return False #注册用户
def register_user(user,password):
fd = open(userinfo,'a+')
fd.write('%s %s\n' % (user,password))
sys.exit('user register Success!') #判断用户名密码正确性
def judge_password(user,passwd):
with open(userinfo) as fd:
for info in fd.readlines():
username,password = info.split()
if user == username and passwd == password:
return True
else:
return False #测试用户是否被锁定
def test_user(user):
with open(userlock) as fd:
for info in fd.readlines():
if user == info.strip('\n'):
return True
else:
return False #锁定用户
def lockuser(user):
fd = open(userlock,'a+')
fd.write('%s\n' % user )
fd.close()
sys.exit("Your Account is locking !!") #主函数
def main():
count = 0
while count < 3:
username,password = user_input() #获取用户输入的用户名和密码
judge_register_result = judge_register(username)
if judge_register_result: #启动登陆流程
test_user_result = test_user(username) #判断用户是否被锁定
if test_user_result:
sys.exit('Sorry,Your Account is locked !!')
else: #验证用户名密码是否正确
judge_password_result = judge_password(username,password)
if judge_password_result:
sys.exit('Hello,Welcome login!!')
else:
if count < 2:
print('Username or Password is Wrong,You have %s chance' % (2-count))
count += 1
else: #启动注册流程
user_choice = input('Are you want to register ? [y/n]')
if user_choice == 'y' or user_choice == 'Y':
register_user(username,password)
sys.exit('register successful,Please relogin !')
elif user_choice == 'n' or user_choice == 'N':
sys.exit('Bye Bye')
else:
sys.exit('Input Error,Bye Bye!')
else: #三次失败 锁定帐户
lockuser(username) if __name__ == '__main__':
main()

Python小程序之用户登陆接口的更多相关文章

  1. 微信小游戏 小程序与小游戏获取用户信息接口调整 wx.createUserInfoButton

    参考: 小程序•小故事(6)——微信登录能力优化 小程序•小故事(4)——获取用户信息 本篇主要是讲微信getUserInfo接口不再出现授权弹框 那么原来getUserInfo是怎么样?修改之后又是 ...

  2. 微信小程序 人脸识别登陆模块

    微信小程序---人脸识别登陆的实现 关键词:微信小程序 人脸识别 百度云接口 前言 这是一篇关于一个原创微信小程序开发过程的原创文章.涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口.小程序的 ...

  3. 微信小程序之微信登陆 —— 微信小程序教程系列(20)

    简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自 ...

  4. 微信小程序-获取用户信息(getUserInfo)

    当小程序抹杀掉这个接口的时候,多少人心凉了.. 作为一个初级web前端开发,我是更加懵逼,小程序员跑路了... 当时以及现在用的办法就是: 1.增加一个登陆或授权页 2.上线以后自动获取 3.增加一个 ...

  5. 微信小程序中用户登录和登录态维护

    提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户信息的纯工具软件. 让用户 ...

  6. 微信小程序PHP 微信支付接口调用

    小程序端 /** * 微信支付接口 */ wxPaymoney:function (out_trade_no, true_money){ //out_trade_no 后台统一下单接口需要用 var ...

  7. wx小程序获取用户位置信息

    wx小程序内置的接口只能获取用户的坐标,通过微信位置服务获取用户地址: http://lbs.qq.com/qqmap_wx_jssdk/index.html 注:需要在key的设置中打开webSer ...

  8. 基于微信小程序的用户列表点赞功能

    代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...

  9. 小程序调用wx.chooseLocation接口的时候无法获取权限(ios)

    ios手机小程序调用wx.chooseLocation接口的时候,获取权限的时候报authorize:fail:require permission desc这样子的错误,这是由于苹果的安全机制导致需 ...

随机推荐

  1. 「日常训练」Single-use Stones (CFR476D2D)

    题意(Codeforces 965D) $w$表示河的宽度,$l$表示青蛙所能跳的最远的距离,第二行的$w-1$个元素表示离河岸为$i$的地方有$a[i]$个石头,一个石头被踩两次,问最多有多少只青蛙 ...

  2. MySQL☞Group By

    分组: group by 列名:根据某一列,把数据分成几组,经常对每一组的数据使用聚合函数,按照我的理解,该列有几种不同的值,那么就把该列分成几组,如下图 简单的来说,第二列中有两个不同的值a和b,那 ...

  3. ssh以bash登录的配置

    因ssh登录时不会加载.bashrc而是加载.bash_profile,所以以ssh的默认登录不会是bash,只要在.bash_profile中添加以下代码即可: if [ -f ~/.bashrc ...

  4. pip消失后复原

    pip是python中比较常用的管理依赖包的工具.今天心血来潮更新一下pip版本,结果悲剧发生了. -bash: /Library/Frameworks/Python.framework/Versio ...

  5. Android之 GPS学习笔记

    ========================================GPS:全球定位系统 GPS由三部分组成:GPS卫星组成的空间部分,若干地面组成的控制站,用户手中的接收机.Androi ...

  6. 并查集——poj1182(带权并查集高阶)

    题目链接:食物链 题解:点击 说一声:这题关系推导值得学习.

  7. hadoop节点之间通信问题

    前天遇到一个hadoop问题,由于之前都是伪分布的情况,没有真正的涉及到集群的环境,最近按照一些资料自己搭建了一个集群环境,三台虚拟机,一个master,两个slave,利用jps查看节点信息,启动了 ...

  8. 【SSH】——Hibernate实现简单的自动建表

    [与ORM] Object Relational Mapping,对象关系映射,将对象和关系联系了起来.面向对象是从耦合.聚合.封装等的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论 ...

  9. elementUI中的el-form怎么使用正则进行验证

    http://element.eleme.io/#/zh-CN/component/form里给出了一个form验证的例子,但是都是使用el-form带有的验证规则,怎么使用自己定义的规则进行验证呢? ...

  10. [剑指Offer] 31.整数中1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...