编写登陆接口

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

程序逻辑图:

代码:

 #!/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. (转)Unreal Networking Guide Created by Zach Metcalf

        2. 3.                                                        

  2. CentOS7安装配置SonarQube

    一.SonarQubeServer 1.前提 安装好mysql5.7和jdk1.8. (1)安装Mysql create user 'sonar'@'localhost' identified by ...

  3. Java串口编程学习2-读串口

    如果读串口出现乱码,则: 1.可能是波特率设置不对 2.可能是数据编码格式不对 import gnu.io.*; import java.awt.*; import java.awt.event.Ac ...

  4. 完整Android开发基础入门博客专栏

    博客地址:http://www.runoob.com/w3cnote/android-tutorial-contents.html

  5. winform 不同语言(中文,英文等)

    Visual Studio 对于.NET 程序的本地化提供了完整的支持,这里仅介绍实现多语言版本本地化程序的简单步骤.注意黑体处为关键点.一. 窗体本地化    对于Windows 窗体,你需要做的第 ...

  6. C++中getline()函数简介

    有时我们希望能在最终得到的字符中保留输入时的空白符,这时应该用getline()函数代替原来的>>运算符. 下面是使用getline读取一整行的示例代码: #include<iost ...

  7. bootstrap和elementUI真的会冲突

    前两天,做了一个支持markdown的功能: http://www.cnblogs.com/XHappyness/p/8097756.html 后面发现预览效果某些标签需要bootstrap的支持才能 ...

  8. 后缀数组 模板题 hdu1403(最长公共(连续)子串)

    好气啊,今天没有看懂后缀树和后缀自动机 只能写个后缀数组发泄一下了orz #include <cstdio> #include <cstring> *; int wa[N], ...

  9. 【题解】洛谷P2418 yyy loves OI IV

    感觉很是妙啊……这题数次误入歧途...最开始想的二维dp,单调队列优化:无果,卒.于是没忍住看了下标签:暴力枚举?搜索?于是开始想记忆化搜索.以为会有什么很强的剪枝之类的:30分,卒.最后终于回到正道 ...

  10. 【题解】洛谷P1975排序

    分块,注意重复的值之间的处理.跟普通分块的操作一样的啦,具体可以参见‘不勤劳的图书管理员’. #include <bits/stdc++.h> using namespace std; # ...