一.写代码前分析(逻辑分析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用户注册和短信验证码逻辑实现案例的更多相关文章

  1. python 实现发送短信验证码

    [说明]短信接口使用的是“聚合数据”上面的接口. 那么在使用接口前,需要在聚合数据上面注册,进行申请接口.当然在正式使用之前,我们可以使用申请免得的进行测试. 一.申请成功后,需做的准备工作如下: 1 ...

  2. python点击短信验证码

    代码如下 : import requestsimport time# 手机号码tel=1381380000# 请求地址url="http://192.168.100.101:8080/api ...

  3. python 自动获取手机短信验证码

    需要一个有权限的 APK 在手机实时存储短信到手机内存 /sdcard/smslog.txt 里(外部SD卡也可以知道能通过adb命令访问到): /***** ...... try {long tim ...

  4. day101:MoFang:模型构造器ModelSchema&注册功能之手机号唯一验证/保存用户注册信息/发送短信验证码

    目录 1.模型构造器:ModelSchema 1.SQLAlchemySchema 2.SQLAlchemyAutoSchema 2.注册功能基本实现 1.关于手机号码的唯一性验证 2.保存用户注册信 ...

  5. python实战===短信验证码的小项目

    项目地址 https://www.shiyanlou.com/courses/609/labs/2007/document flask的中文文档 http://docs.jinkan.org/docs ...

  6. python+pymssql+selenium 获取短信验证码登录(实战练习)

    登录页面输入手机号, 获取短信验证码(验证码有10分钟有效期) 1 连接sql server数据库,获取10分钟之内的有效短信验证码 2 页面输入手机号,并获取验证码.若存在有效验证码则输入验证码,若 ...

  7. Android Studio精彩案例(五)《JSMS短信验证码功能实现》

    转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 很多应用刚打开的时候,让我们输入手机号,通过短信验证码来登录该应用.那么,这个场景是怎么实现的呢?其实是很多开放平台提供了短信验证功能 ...

  8. 【安全测试】如何利用短信验证码BUG浪费公司的钱

    一.背景 公司新产品体验,发现不少交互.UI.功能设计上的小问题.于是花了点时间随意挑了几个功能深入的玩了一下,顺手提了BUG.接口层,看了一下接口文档,简单测了一下接口,BUG其实还挺严重的,后面详 ...

  9. Django商城项目笔记No.5用户部分-注册接口-短信验证码

    Django商城项目笔记No.4用户部分-注册接口-短信验证码 短信验证码也保存在redis里(sms_code_15101234567) 在views中新增SMSCodeView类视图,并且写出步骤 ...

  10. day102:MoFang:后端完成对短信验证码的校验&基于celery完成异步短信发送&flask_jwt_extended&用户登录的API接口

    目录 1.用户注册 1.后端完成对短信验证码的校验 2.基于celery实现短信异步发送 2.用户登录 1.jwt登录验证:flask_jwt_extended 2.服务端提供用户登录的API接口 1 ...

随机推荐

  1. 2022-02-17:寻找最近的回文数。 给定一个表示整数的字符串 n ,返回与它最近的回文整数(不包括自身)。如果不止一个,返回较小的那个。 “最近的”定义为两个整数差的绝对值最小。 示例 1: 输

    2022-02-17:寻找最近的回文数. 给定一个表示整数的字符串 n ,返回与它最近的回文整数(不包括自身).如果不止一个,返回较小的那个. "最近的"定义为两个整数差的绝对值最 ...

  2. 2021-10-13:单词接龙。字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:序列中第一个单词是 beginWord 。序列中最后

    2021-10-13:单词接龙.字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:序列中第一个单词是 beginWord .序列中最后 ...

  3. 2021-09-09:企鹅厂活动发文化衫,文化衫有很多种,企鹅们都穿文化衫。采访中,企鹅会说还有多少企鹅跟他穿一种文化衫。有些企鹅没被采访到,将这些回答放在answers数组里,返回活动中企鹅的最少数

    2021-09-09:企鹅厂活动发文化衫,文化衫有很多种,企鹅们都穿文化衫.采访中,企鹅会说还有多少企鹅跟他穿一种文化衫.有些企鹅没被采访到,将这些回答放在answers数组里,返回活动中企鹅的最少数 ...

  4. Nature 重大发现:癌基因竟不在染色体上?第一作者吴思涵亲身解读!

    编辑|李丽 记者|布德鸟 图片提供|吴思涵 今日凌晨,美国加州大学圣地亚哥分校 Ludwig 癌症研究所的 Paul Mischel 教授领导的研究团队发现, 大量的癌基因并不在染色体上,而是会从染色 ...

  5. RSA 加密解密

    from Crypto.Util.number import bytes_to_long, long_to_bytes, getPrime import libnum # 一.取两个素数 p = ge ...

  6. vue中的数据代理

    原理:通过vm对象来代理 Vue 中我们自己定义在data中的数据,首先: 我们自己定义的data中的对象或者属性 都会存储到vm中的_data 中进行数据劫持其次: 通过Object.defineP ...

  7. GoldenEye项目实战

    前言 "操千曲而后晓声,观千剑而后识器",下载靶机项目实战提升自我,这是一个涉及到渗透与CTF联合的实战项目. Descript: 我最近完成了一个OSCP类型的易受攻击机器的创建 ...

  8. java接口返回图片链接或pdf链接如何设置在线预览还是下载

    之前文章说到了如何通过将文件转成图片或者pdf来实现在线预览,一般来说在线预览图片或者pdf都是存储在图片服务器上的,在通过接口调用把文件返回给前端,但是把文件返回给前端效果一般是有两种:在线预览和下 ...

  9. 逍遥自在学C语言 | 指针的基础用法

    前言 在C语言中,指针是一项重要的概念,它允许我们直接访问和操作内存地址. 可以说,指针是C语言一大优势.用得好,你写程序如同赵子龙百万军中取上将首级:用得不好,则各种问题层出不穷,有种双拳难敌四手的 ...

  10. Go应用性能优化的8个最佳实践,快速提升资源利用效率!

    作者|Ifedayo Adesiyan 翻译|Seal软件 链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确 ...