图片验证码和短信验证码开发

本文详细介绍了如何进行图片验证码和短信验证码的开发,包括后端引入captcha包,定义验证码API路由,前端生成图片验证码编号,以及短信验证码的获取与验证流程,涉及到redis数据库的使用和异常处理。
摘要由CSDN通过智能技术生成

图片验证码和短信验证码开发

tip :前后端分离,先开发后端,后完善前端

一、图片验证码流程

1539052738611

1、引入captcha包放入utils

不是独立的第三方包放入utils,独立的包放入libs里面

1539053095673

  1. captcha.py 里的生成验证码方法captcha.generate_captcha()
  2. response_code.py 是各种的错误返回说明
  3. commons.py 是定义的正则表达转换器
from werkzeug.routing import BaseConverter

# 定义正则转换器
class ReConverter(BaseConverter):
    """"""
    def __init__(self, url_map, regex):
        # 调用父类的初始化方法
        super(ReConverter, self).__init__(url_map)
        # 保存正则表达式
        self.regex = regex
2.定义验证码api路由 verify.py

GET 127.0.0.1/api/v1.0/image_codes/<image_code_id>, 保存到redis 数据库,但是redis数据类型 redis: 字符串 列表 哈希 set的键值对,不能用列表,[列表里只能是字符串,不能放{键值对}],哈希可以用,但是使用哈希维护有效期的时候只能整体设置,想要单条维护因此选用字符串。连接redis保存数据和设置有效期redis_store.setex("image_code_%s" % image_code_id, 180, text)其中180s 是常量,可以放置在一个单独的constants.py

constants.py
# coding:utf-8
# 图片验证码的redis有效期, 单位:秒
IMAGE_CODE_REDIS_EXPIRES = 180
# 短信验证码的有效期
SMS_CODE_REDIS_EXPIRES = 300

# 短信验证码的间隔
SEND_SMS_CODE_INYERVAL = 6
verify.py
# GET 127.0.0.1/api/v1.0/image_codes/<image_code_id>
@api.route("/image_codes/<image_code_id>")
def get_image_code(image_code_id):
    """
    获取图片验证码
    : params image_code_id:  图片验证码编号
    :return:  正常:验证码图片  异常:返回json
    """
    # 业务逻辑处理
    # 生成验证码图片
    # 名字,真实文本, 图片数据
    name, text, image_data = captcha.generate_captcha()

    # 将验证码真实值与编号保存到redis中, 设置有效期
    # re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值