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小程序之实现用户的注册登陆验证功能的更多相关文章

  1. 【微信小程序】获取用户地理位置权限,二次请求授权,逆解析获取地址

    摘要:微信小程序内获取用户地理位置信息授权,被拒绝后二次获取,获取权限后逆解析得到用户所在省市区等.. 场景:商城类小程序,在首页时需展示附近门店,即用户刚进入小程序时就需要获取到用户位置信息 ste ...

  2. 微信小程序之获取用户位置权限(拒绝后提醒)

    微信小程序获取用户当前位置有三个方式: 1. wx.getLocation(多与wx.openLocation一起用) 获取当前的精度.纬度.速度.不需要授权.当type设置为gcj02 返回可用于w ...

  3. 小程序获取微信用户的openid

    小程序获取微信用户的openid //index.js //获取应用实例 const app = getApp() Page({ globalData: { appid: '11121221a89e0 ...

  4. 微信小程序开发——小程序API获取用户位置及异常流处理完整示例

    前言: 小程序需要添加一个定位功能,主要的就是获取用户位置的经纬度,然后根据用户经纬度进行一些判断操作. 在小程序提供的Api中,获取用户定位信息的主要Api是 wx.getLocation(obj) ...

  5. 小程序如何判断用户(后台使用Django)

    小程序如何判断用户是哪个: 有Web开发经验的都知道,客户端用户发起请求,服务器收到请求后,可以通过把用户user_id记录到session里,然后下次通过session里面的user_id来辨别是哪 ...

  6. [重要更新]微信小程序登录、用户信息相关接口调整:使用 wx.getUserProfile 取代 wx.getUserInfo

    2021年2月24日,微信官方团队发布了一个调整通知:<小程序登录.用户信息相关接口调整说明>,公告明确从4月13日起,所有发布的小程序将无法使用 wx.getUserInfo 接口(JS ...

  7. 微信小程序_(校园视)开发用户注册登陆

    微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...

  8. 微信小程序一键生成源码 在线制作定制功能强大的微信小程序

    微信小程序发展到现在,短短的一年不到的时间(很快就要迎来微信小程序周年庆),在快迎来周年庆之际,百牛信息技术bainiu.ltd特记录一下这个发展的历程,用于将来见证小程序发展的辉煌时刻,我们还能知道 ...

  9. 【小程序+thinkphp5】 用户登陆,返回第三方session3rd

    服务器环境: centos7   php7.0 准备工作: 注册小程序,并获取 appid .appsecret 下载微信解密算法sdk : https://mp.weixin.qq.com/debu ...

随机推荐

  1. Kotlin Reference (一) Basic Syntax

    什么是Kotlin Kotlin翻译成中文叫"靠他灵",它是由JetBrains公司发明的一种基于JVM的编程语言,目前Google宣布kotlin为Android开发的官方语言. ...

  2. 用pip安装python 模块OpenSSL

    windows下 1.配置好pip命令 下载安装 pip‑1.5.6.win‑amd64‑py2.7.exeor pip‑1.5.6.win32‑py2.7.exe 装好在C:\Python27\Sc ...

  3. Python源码分析(二) - List对象

    python中的高级特性之一就是内置了list,dict等.今天就先围绕列表(List)进行源码分析. Python中的List对象(PyListObject) Python中的的PyListObje ...

  4. C++面向对象的编程思想机器人

    C++的面向对象的编程思想如下,一般情况为一个类中包含了这个对象的所有属性与函数,直接调用这个对象就可以对这个对象执行它可以使用的任何操作. #include <iostream> cla ...

  5. Appium+python(1)简单的介绍环境搭建

    环境搭建其实并不难,只不过安装的东西有点多,要加的环境变量有点多. 链接:https://pan.baidu.com/s/1nwLhNIT 密码:56wn 这个压缩包里要用的都有了,只需要下载,然后安 ...

  6. xpath与css_selector定位详解

    例题:分别用xPath和css_selector定位下图的img标签 答案:  xpath:.//*[@id='fstscr']/div[3]/div[2]/a/img css_selector: . ...

  7. Windows下Redis的使用

    Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括st ...

  8. Sprint第一个冲刺(第一天)

    一.Sprint介绍 我们这次的团队项目是做<餐厅到店点餐系统>APP版,暂时不是基于用户需求来做的,但后期会进行用户需求调查,完善我们的软件.现在正在做一些前期准备,在团队合作上还缺乏一 ...

  9. 几个中文排版web 类库

    1. typo.css http://typo.sofi.sh/ 2.  yue.css http://lab.lepture.com/yue.css/ 规范,统一才是开发的王道.

  10. winform Textbox模糊搜索实现下拉显示+提示文字

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...