编写登陆接口

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

程序逻辑图:

代码:

 #!/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. JMeter上传图片

    JMeter怎样上传图片? 请注意图片的路径要与.jmx脚本的目录保持一致, 或者放在JMeter的bin目录下. 协议:http 服务器名称或IP:www.abcdef.com 方法:POST 路径 ...

  2. session、token、cookie的区别

    token就是令牌,比如你授权(登录)一个程序时,他就是个依据,判断你是否已经授权该软件cookie就是写在客户端的一个txt文件,里面包括你登录信息之类的,这样你下次在登录某个网站,就会自动调用co ...

  3. Floatingip

    浮动IP相关功能点: 模块 功能 描述 备注 FloatingIP 创建浮动IP 指定带宽大小创建单个/多个浮动IP   指定子网.指定IP创建浮动IP   绑定浮动IP,修改带宽 绑定浮动IP到指定 ...

  4. Dijkstra标准模板

    Dijkstra求最短路问题:单元求最短路,从任意点出发求得该点到达其他任意点的距离 Dijkstra其实是一种贪心策略,与出发点(即源点)所连接的点中找到距离最短的点(这个距离是源点到这个点的最短距 ...

  5. PHP中的6种加密方式

    PHP中的6种加密方式 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str  --  原始字符串. raw ...

  6. Top K 算法详解

    http://xingyunbaijunwei.blog.163.com/blog/static/7653806720111149318357/ 问题描述         百度面试题:        ...

  7. eclipse安装问题

    eclipse安装之前需要安装JDK. 注意:eclipse和JDK需要一致,如都是64位或者都是32位. 不然会报错.

  8. html前端插件 ZenCoding 更名为Emmet

    eclipse下的使用方法   http://www.educity.cn/develop/651853.html visualstudio下的使用方式 http://www.johnpapa.net ...

  9. 【转】C++ const用法 尽可能使用const

    http://www.cnblogs.com/xudong-bupt/p/3509567.html C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不 ...

  10. 基于网络的 Red Hat 无人值守安装

    基于网络的 Red Hat 无人值守安装 本文介绍了 PC 平台上的一种快速 Red Hat Linux 安装方案.它具有很高的自动化程度--用户只需手工启动机器并选择从网络启动,就可以完成整个安装过 ...