1_python小程序之实现用户的注册登陆验证功能
python小程序之实现用户的注册登陆验证功能
程序扼要简述:
一、程序流程:
1.程序开始
2.判断本地文件/数据库是否已存在用户信息,存在则跳转到登陆,否则跳转到注册,注册成功后后跳转到登陆
3.判断登陆是否成功,成功则返回成功信息,否则重复尝试登陆3次,最后登录不成功则锁定15秒
4.程序结束
二、程序使用的知识点:
1.本地文件的存储读取
2.对字典的操作
3.if条件判断
4.for/while循环
三、流程思路图:

四、代码详细:
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# author='chenjianwen'
##实现用户的注册登陆验证功能 import getpass
import os,sys,time ##红色
def print_red(messages):
print('\033[1;35m %s \033[0m' %messages)
##绿色
def print_green(messages):
print('\033[1;32m %s \033[0m' %messages) ##定义空字典
userinfo = []
un = []
pas = []
##判断存储用户信息文件是否存在,不存在则创建
if not os.path.exists('./userinfo.txt'):
f = open("./userinfo.txt",mode="w",encoding="UTF-8")
f.close() ##读取存储用户信息文件,并把用户信息写入字典
save_userinfo_file = open('./userinfo.txt','r')
for line in save_userinfo_file.readlines():
line =line.strip()
if not len(line) or line.startswith('#'):
continue
#print(line)
username = line.split(' ')[0]
password = line.split(' ')[1]
phone_number = line.split(' ')[2]
#print('==========================')
#print(username,password,phone_number)
#userinfo.append({'username':'%s' %username,'password':'%s' %password,'phon_number':'%s' %phone_number})
un.append(username)
pas.append(password)
#print(userinfo) count = 0
while True:
if count < 3:
count +=1
select_info = input("你是否有注册过账号了? Please select Y/N:")
##用户注册信息
if select_info == 'N' or select_info == 'n':
print("开始注册用户信息:")
username = input("Please enter your username:")
password = getpass.getpass("Please enter your password:")
phone_number = input("Please enter your phon_number:")
#userinfo.append({'username':'%s' %username,'password':'%s' %password,'phon_number':'%s' %phone_number})
un.append(username)
pas.append(password)
#print(userinfo)
with open('./userinfo.txt','a') as fw:
fw.writelines('\n%s %s %s' %(username,password,phone_number))
#print(userinfo)
##用户登陆验证信息
elif select_info == 'Y' or select_info == 'y':
#print(userinfo)
print("开始登录验证信息:")
username = input("Please enter your username:")
password = getpass.getpass("Please enter your password:") if username in un and password in pas: ##【优化1次】用户与密码验证方法有待优化,目前能够用户密码错位登录,只要列表中分别有输入的对应的字段就可以登录
print_green("welcom login {_username}".format(_username=username))
break
else:
print_red('Check fail...Check again...')
print_red("您还有%s次登录机会" % (3 - count))
continue
else:
print_red("您输入的内容错误! Please enter again...")
continue
else:
print_red("重复登陆多次失败,请15分钟后再尝试登陆...")
time.sleep(15)
count = 0
continue
五、执行结果

1_python小程序之实现用户的注册登陆验证功能的更多相关文章
- 【微信小程序】获取用户地理位置权限,二次请求授权,逆解析获取地址
摘要:微信小程序内获取用户地理位置信息授权,被拒绝后二次获取,获取权限后逆解析得到用户所在省市区等.. 场景:商城类小程序,在首页时需展示附近门店,即用户刚进入小程序时就需要获取到用户位置信息 ste ...
- 微信小程序之获取用户位置权限(拒绝后提醒)
微信小程序获取用户当前位置有三个方式: 1. wx.getLocation(多与wx.openLocation一起用) 获取当前的精度.纬度.速度.不需要授权.当type设置为gcj02 返回可用于w ...
- 小程序获取微信用户的openid
小程序获取微信用户的openid //index.js //获取应用实例 const app = getApp() Page({ globalData: { appid: '11121221a89e0 ...
- 微信小程序开发——小程序API获取用户位置及异常流处理完整示例
前言: 小程序需要添加一个定位功能,主要的就是获取用户位置的经纬度,然后根据用户经纬度进行一些判断操作. 在小程序提供的Api中,获取用户定位信息的主要Api是 wx.getLocation(obj) ...
- 小程序如何判断用户(后台使用Django)
小程序如何判断用户是哪个: 有Web开发经验的都知道,客户端用户发起请求,服务器收到请求后,可以通过把用户user_id记录到session里,然后下次通过session里面的user_id来辨别是哪 ...
- [重要更新]微信小程序登录、用户信息相关接口调整:使用 wx.getUserProfile 取代 wx.getUserInfo
2021年2月24日,微信官方团队发布了一个调整通知:<小程序登录.用户信息相关接口调整说明>,公告明确从4月13日起,所有发布的小程序将无法使用 wx.getUserInfo 接口(JS ...
- 微信小程序_(校园视)开发用户注册登陆
微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...
- 微信小程序一键生成源码 在线制作定制功能强大的微信小程序
微信小程序发展到现在,短短的一年不到的时间(很快就要迎来微信小程序周年庆),在快迎来周年庆之际,百牛信息技术bainiu.ltd特记录一下这个发展的历程,用于将来见证小程序发展的辉煌时刻,我们还能知道 ...
- 【小程序+thinkphp5】 用户登陆,返回第三方session3rd
服务器环境: centos7 php7.0 准备工作: 注册小程序,并获取 appid .appsecret 下载微信解密算法sdk : https://mp.weixin.qq.com/debu ...
随机推荐
- Eclipse下搭建SWT与Swing图形界面开发环境
一.SWT与Swing介绍 SWT(StandardWidget Toolkit)则是由Eclipse项目组织开发的一套完整的图形界面开发包,虽然当初仅仅是IBM为了编写Eclipse的IDE环境才编 ...
- 2.JSR简介 - JavaEE基础系列
JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...
- mysql 时间转换 用EXCEL实现MySQL时间戳格式和日期格互转
今天项目表中需要导入好几w条数据 ,但日期由两个一个是标准时间一个为时间戳,程序中搜索是根据时间戳来搜索的,所以在网上翻箱倒柜的终于找到解决之道了,利用excel转换时间戳 时间戳转成正常日期的公式: ...
- ios 控制器的生命周期
#pragma mark - 控制器生命周期 // 视图将要出现 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:anima ...
- Servlet实现文件上传和下载
对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具commo ...
- 接口测试框架——第六篇-读Excel封装方法
谢谢@小麦苹果的提醒,才发现我借口测试少写了一个文件,今天给大家补上: common->service->excel_case_data.py # coding: utf-8 import ...
- 接口测试基础——第7篇 简单的Python知识普及(二)之装饰器
今天我们来学习python里面的“装饰器” 1.我在函数test运行前想先打印一些内容怎么办? def func(param): print u"打印的内容" para ...
- LeetCode 773. Sliding Puzzle
原题链接在这里:https://leetcode.com/problems/sliding-puzzle/description/ 题目: On a 2x3 board, there are 5 ti ...
- CH1802 表达式计算4
题意 给出一个表达式,其中运算符仅包含+,-,*,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值 数据可能会出现括号情况,还有可能出现多余括号情况 数据保证不会出现>=2^31的答案 数 ...
- BZOJ1556 墓地秘密
题意 费尽周折,终于将众将士的残骸运送到了KD军事基地地底层的大型墓地入口.KD的伙伴和战友们都参加了这次重大的送葬仪式.右边是一扇敞开的大门,进去便是墓地了,左边是一堵凹进去的墙,没有什么特别的地方 ...