用python用户注册和短信验证码逻辑实现案例
一.写代码前分析(逻辑分析OK了才可以顺利成章的敲代码):
A、用户发送请求
1、注册账号(用户名不能重复)--按照需求进行判断
2、短信验证码(有效期5分钟)--对短信验证码进行保存
B、用户注册、短信验证用不同得函数封装实现
d_user={} #存放用户名和密码的数据字典
verification={} #存放短信验证码--手机号为键,验证码为值
二.涉及的知识点
1.函数调用
def f2():
print(123)
def f3():
f2()
print('........')
f3()
运行截图:

2.print(random.randint(0,9)) #生成随机数

3.使用filter()过滤器校验用户是否已注册
# 校验用户是否已经注册
def f(o):
if o==user: # 重复
return o # 返回相同的对象
if list(filter(f,d_user)): # 重复
print('用户名已注册!!!')
三.代码板块
1.初版
d_user={} # 用户信息数据库
verification={} # 存放短信验证信息 手机号为键 验证码为值
def register(user,password,mobile):
# 校验用户是否已经注册
def f(o):
if o==user: # 重复
return o # 返回相同的对象
if list(filter(f,d_user)): # 重复
print('用户名已注册!!!')
else:
# 可以注册,先生成6位长度的短信验证码
sms_num=[]
for i in range(6): # 循环6次
sms_num.append(str(random.randint(0,9)))
print(sms_num)
s=''.join(sms_num) # 字符串拼接
# 添加---保存验证码信息 (手机号为键,短信验证码为值)
verification[mobile]=s
print('验证码为:%s'%s) # 告诉用户短信验证码
sms_code=input('请输入短信验证码:')
#
判断所输入的验证码是否真
if verification[mobile]==sms_code:
# 注册成功 保存用户名、密码
d_user[user]=password
print('注册成功!!!')
else:
print('短信验证码输入错误重新输入!!!')
# 若输入错误我们需要改短信验证码,程序又要回到再次验证,所以写一个验证码方法直接调用即可
while True:
user=input('请输入用户名:')
password=input('请输入密码:')
mobile=input('请输入手机号:')
register(user, password, mobile)
运行截图:

2.终版,增加验证码方法
d_user={} # 用户信息数据库
verification={} # 存放短信验证信息 手机号为键 验证码为值
def short_ver(user,password,mobile):
sms_code=input('请输入短信验证码')
# 判断所输入的验证码是否真
if verification[mobile]==sms_code:
# 注册成功 --保存用户名、密码
d_user[user]=password
print('注册成功!!!')
else:
print('短信验证码输入错误重新输入!!!')
# 我们直接改短信验证码
short_ver(user,password,mobile) # 再次调用
def register(user,password,mobile):
# 校验用户是否已经注册
def f(o):
if o==user: # 重复
return o # 返回相同的对象
if list(filter(f,d_user)): # 重复
print('用户名已注册!!!')
else:
# 可以注册,先生成6位长度的短信验证码
sms_num=[]
for i in range(6): # 循环6次
sms_num.append(str(random.randint(0,9)))
print(sms_num)
s=''.join(sms_num) # 字符串拼接
# 添加---保存验证码信息
verification[mobile]=s
print('验证码为:%s'%s) # 告诉用户短信验证码
short_ver(user,password,mobile)
while True:
user=input('请输入用户名:')
password=input('请输入密码:')
mobile=input('请输入手机号:')
register(user, password, mobile)
运行截图:

用python用户注册和短信验证码逻辑实现案例的更多相关文章
- python 实现发送短信验证码
[说明]短信接口使用的是“聚合数据”上面的接口. 那么在使用接口前,需要在聚合数据上面注册,进行申请接口.当然在正式使用之前,我们可以使用申请免得的进行测试. 一.申请成功后,需做的准备工作如下: 1 ...
- python点击短信验证码
代码如下 : import requestsimport time# 手机号码tel=1381380000# 请求地址url="http://192.168.100.101:8080/api ...
- python 自动获取手机短信验证码
需要一个有权限的 APK 在手机实时存储短信到手机内存 /sdcard/smslog.txt 里(外部SD卡也可以知道能通过adb命令访问到): /***** ...... try {long tim ...
- day101:MoFang:模型构造器ModelSchema&注册功能之手机号唯一验证/保存用户注册信息/发送短信验证码
目录 1.模型构造器:ModelSchema 1.SQLAlchemySchema 2.SQLAlchemyAutoSchema 2.注册功能基本实现 1.关于手机号码的唯一性验证 2.保存用户注册信 ...
- python实战===短信验证码的小项目
项目地址 https://www.shiyanlou.com/courses/609/labs/2007/document flask的中文文档 http://docs.jinkan.org/docs ...
- python+pymssql+selenium 获取短信验证码登录(实战练习)
登录页面输入手机号, 获取短信验证码(验证码有10分钟有效期) 1 连接sql server数据库,获取10分钟之内的有效短信验证码 2 页面输入手机号,并获取验证码.若存在有效验证码则输入验证码,若 ...
- Android Studio精彩案例(五)《JSMS短信验证码功能实现》
转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 很多应用刚打开的时候,让我们输入手机号,通过短信验证码来登录该应用.那么,这个场景是怎么实现的呢?其实是很多开放平台提供了短信验证功能 ...
- 【安全测试】如何利用短信验证码BUG浪费公司的钱
一.背景 公司新产品体验,发现不少交互.UI.功能设计上的小问题.于是花了点时间随意挑了几个功能深入的玩了一下,顺手提了BUG.接口层,看了一下接口文档,简单测了一下接口,BUG其实还挺严重的,后面详 ...
- Django商城项目笔记No.5用户部分-注册接口-短信验证码
Django商城项目笔记No.4用户部分-注册接口-短信验证码 短信验证码也保存在redis里(sms_code_15101234567) 在views中新增SMSCodeView类视图,并且写出步骤 ...
- day102:MoFang:后端完成对短信验证码的校验&基于celery完成异步短信发送&flask_jwt_extended&用户登录的API接口
目录 1.用户注册 1.后端完成对短信验证码的校验 2.基于celery实现短信异步发送 2.用户登录 1.jwt登录验证:flask_jwt_extended 2.服务端提供用户登录的API接口 1 ...
随机推荐
- lec-1-Deep Reinforcement Learning, Decision Making, and Control
What is RL 基于学习的决策的数学形式 从经验中学习决策和控制的方法 Why should we study this now 深度神经网络特征方法 强化学习的提升 计算能力的提升 我们还需要 ...
- 三款Github Copilot的免费替代
大家好我是费老师,提起Github Copilot,相信很多读者朋友们都听说过甚至使用过,作为Github研发的一款先进的编程辅助插件,它可以在我们日常编写代码的过程中,根据代码的上下文内容.注释等信 ...
- Doris(一) -- 简介和安装
Doris 简介 Doris 概述 Apache Doris 由百度大数据部研发 (之前叫百度 Palo,2018 年贡献到 Apache 社区后,更名为 Doris), 在百度内部,有超过 200 ...
- 流量劫持 —— GZIP 页面零开销注入 JS
前言 HTTP 代理给页面注入 JS 是很常见的需求.由于上游服务器返回的页面可能是压缩状态的,因此需解压才能注入,同时为了节省流量,返回下游时还得再压缩.为了注入一小段代码,却将整个页面的流量解压再 ...
- 【Java技术专题】「攻破技术盲区」带你攻破你很可能存在的Java技术盲点之动态性技术原理指南(反射技术专题)
@ 目录 带你攻破你很可能存在的Java技术盲点之动态性技术原理指南 编程语言的类型 静态类型语言 动态类型语言 技术核心方向 反射API 反射案例介绍 反射功能操作 获取构造器 长度可变的参数 - ...
- [ARM 汇编]高级部分—ARM汇编编程实战—3.3.1 嵌入式系统的基本概念
嵌入式系统是一种特殊的计算机系统,通常用于执行特定的任务.它通常包含一个或多个微处理器.存储器和外围设备.与通用计算机系统相比,嵌入式系统具有体积小.功耗低.成本低和实时性强等特点.在这一部分,我们将 ...
- Mysql数据库常见故障
Mysql数据库常见故障 1.报错现象 Host is blocked because of many connection errors; unblock with 'mysqladmin flus ...
- 对敏感操作的二次认证 —— 详解 Sa-Token 二级认证
一.需求分析 在某些敏感操作下,我们需要对已登录的会话进行二次验证. 比如代码托管平台的仓库删除操作,尽管我们已经登录了账号,当我们点击 [删除] 按钮时,还是需要再次输入一遍密码,这么做主要为了两点 ...
- 2023-07-06:RabbitMQ中的AMQP是什么?
2023-07-06:RabbitMQ中的AMQP是什么? 答案2023-07-06: AMQP AMQP(Advanced Message Queuing Protocol)是一个应用层协议的开放标 ...
- 现代C++(Modern C++)基本用法实践:五、智能指针
概述 c++效率较高的一个原因是我们可以自己定制策略手动申请和释放内存,当然,也伴随着开发效率降低和内存泄漏的风险.为了减少手动管理内存带来的困扰,c++提出了智能指针,可以帮助我们进行内存管理,有三 ...