用python用户注册和短信验证码逻辑实现案例

python,用户注册,短信,验证码,逻辑,实现,案例 · 浏览次数 : 47

小编点评

**代码前分析(逻辑分析OK了才可以顺利成章的敲代码):** **1.函数调用** * `f2()` 函数调用 `f3()` 函数,并将结果输出。 * `f3()` 函数递归调用 `f2()` 函数,并输出中间结果。 **2.涉及的知识点** * 用户注册和短信验证使用字典 `d_user` 来存储用户信息和短信验证信息。 * 使用 `filter()` 过滤器校验用户是否已注册,避免重复注册。 * 使用 `random` 模块生成 6 位的随机字符串,作为短信验证码。 **3.代码板块** **1.用户注册** * 检查用户是否已注册。 * 如果未注册,生成 6 位的随机短信验证码并将其存储在 `verification` 中。 * 注册成功后,将用户名、密码和短信验证码存储在 `d_user` 中。 **2.短信验证** * 用户输入短信验证码。 * 检查 `verification` 中是否存在已注册的手机号码。 * 如果已注册,检查输入的短信验证码与存储的验证码是否匹配。 * 注册成功后,通知用户。 **4.再次调用函数** * 用户可以再次进行注册或短信验证,直到他们最终注册成功。

正文

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

一.写代码前分析(逻辑分析OK了才可以顺利成章的敲代码): A、用户发送请求 1、注册账号(用户名不能重复)--按照需求进行判断 2、短信验证码(有效期5分钟)--对短信验证码进行保存 B、用户注册、短信验证用不同得函数封装实现 d_user={} #存放用户名和密码的数据字典 verificati

用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知

背景 背景是这样的, 我的家里台式机常年 休眠, 并配置了 Wake On Lan (WOL) 方便远程唤醒并使用. 但是我发现, 偶尔台式机会被其他情况唤醒, 这时候我并不知道, 结果白白运行了好几天, 浪费了很多电. 所以我的需求是这样的: 🤔 电脑唤醒后(可能是开机, 有可能是从休眠状态唤醒

[转帖]如何用python连接Linux服务器

1.安装paramiko库 pip install paramiko 2.使用paramiko库连接linux #导入库 import paramiko #创建一个sshclient对象 ssh = paramiko.SSHClient() #允许连接不在know_host中的主机 ssh.set_

一个用Python将视频变为表情包的工具

这是一个将视频转变为表情包的工具,现实生活中当我们看到一段搞笑的视频,我们可以将这段视频喂给这段程序,生成gif表情包,这样就可以用来舍友斗图了 1、一些限制 1、这个程序不能转化超过15秒以上的视频,因为占用的内存较高,会被终端杀死(除非你的计算机性能很好,也许1分钟的短视频都可以),为了整个程序

Python 潮流周刊#51:用 Python 绘制美观的图表

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 本期周刊分享了 12 篇文章,12 个开源项目,赠书 5 本《图解IT基础设施》,

Python使用socket的UDP协议实现FTP文件服务

用Python的socket,使用UDP协议实现一个FTP服务端、FTP客户端,用来实现文件的传输。在公司内网下,可以不适用U盘的情况下,纯粹使用网络,来实现文件服务器的搭建,进而实现文件的网络传输。同时用来理解Python的socket使用。

#Python基础 利用Pyinstaller 模块对python代码进行打包exe

一般我们都用 Python 的 Pyinstaller 模块进行打包,这里记录Pyinstaller 模块进行打包。 一:安装 Pyinstaller 模块 pip install PyInstaller 二:打开cmd(win+R) 三:操作 3.1 切换路径(这里示例文件在E盘) 输入E:来切换

Python中的弱引用与基础类型支持情况探究

## 背景 最近有一个业务场景需要用Python自行实现一个简单的LRU cache,不可避免的接触到了弱引用这一概念,这里记录一下。 ## 强引用 Python内存回收由垃圾回收器自动管理,当一个对象的引用计数归0时,其内存就可能被回收掉,而引用计数器的数值其实就是代表有多少个强引用指向该对象,我

SICP:惰性求值、流和尾递归(Python实现)

在上一篇博客中,我们介绍了用Python对来实现一个Scheme求值器。然而,我们跳过了部分特殊形式(special forms)和基本过程(primitive procedures)实现的介绍,如特殊形式中的delay、cons-stream,基本过程中的force、streawn-car、stream-map等。事实上,以上特殊形式和基本过程都和惰性求值与流相关。这篇博客我们将介绍如何用Pyt

快速上手python的简单web框架flask

简介 python可以做很多事情,虽然它的强项在于进行向量运算和机器学习、深度学习等方面。但是在某些时候,我们仍然需要使用python对外提供web服务。 比如我们现在有一个用python写好的模型算法,这个模型算法需要接收前端的输入,然后进行模拟运算,最终得到最后的输出。这个流程是一个典型的web