用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 ...
随机推荐
- 文心一言 VS chatgpt (8)-- 算法导论2.3 5~6题
五.回顾查找问题(参见练习 2.1-3),注意到,如果序列 A 已排好序,就可以将该序列的中点与v进行比较.根据比较的结果,原序列中有一半就可以不用再做进一步的考虑了.二分查找算法重复这个过程,每次都 ...
- 2022-10-08:以下go语言代码输出什么?A、0 0;B、0 4;C:4 0;D:4 4。 package main const s = “Go101.org“ // len(s) == 9
2022-10-08:以下go语言代码输出什么?A.0 0:B.0 4:C:4 0:D:4 4. package main const s = "Go101.org" // len ...
- 2022-01-03:比如arr = {3,1,2,4}, 下标对应是:0 1 2 3, 你最开始选择一个下标进行操作,一旦最开始确定了是哪个下标,以后都只能在这个下标上进行操作。 比如你选定1下标,
2022-01-03:比如arr = {3,1,2,4}, 下标对应是:0 1 2 3, 你最开始选择一个下标进行操作,一旦最开始确定了是哪个下标,以后都只能在这个下标上进行操作. 比如你选定1下标, ...
- 合合信息亮相CCIG2023:多位大咖共话智能文档未来,文档图像内容安全还面临哪些技术难题?
近日,中国图象图形大会(CCIG 2023)(简称"大会")在苏州圆满落幕.本届大会以"图象图形·向未来"为主题,由中国科学技术协会指导,中国图象图形学学会 ...
- 7-8 切分表达式——写个tokenizer吧 (20 分)
1.题目描述: [先说点出题背景] 这个题是为低年级同学.学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂.如果是高年级.学过了正则表达式(Regular Expression) ...
- 一天吃透Spring面试八股文
内容摘自我的学习网站:topjavaer.cn Spring是一个轻量级的开源开发框架,主要用于管理 Java 应用程序中的组件和对象,并提供各种服务,如事务管理.安全控制.面向切面编程和远程访问等. ...
- 驱动开发:内核解析PE结构节表
在笔者上一篇文章<驱动开发:内核解析PE结构导出表>介绍了如何解析内存导出表结构,本章将继续延申实现解析PE结构的PE头,PE节表等数据,总体而言内核中解析PE结构与应用层没什么不同,在上 ...
- html+css简单易懂的轮播图实现
实现轮播图感觉好复杂啊,这个比较简单的实现了 但是还是没有怎么理解代码,只能先发出来慢慢学习学习了 话不多说,直接上代码 <!DOCTYPE html> <html lang=&qu ...
- 使用脚本收发 protobuf 协议数据
问题背景 最近做了一个 ipv6 相关的功能,发现使用 getifaddrs 获取的本地 ipv6 地址有可能不是真实的网络 ipv6 地址: 例如上图中通过 getifaddrs 获得了多个本地 i ...
- 强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验
强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述.序列决策.动作空间定义.策略价值函数.探索与利用.Gym强化学习实验 1.强化学习核心概念 强化学习(reinforcement le ...