Flask项目(新闻网站)—— 项目配置(二)

图片验证码

前期准备

首页的注册功能中的图片验证码功能实现:

功能逻辑图:

在这里插入图片描述

代码实现

首先进入templates目录下的index页面,如下图进行配置:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入passport目录,init文件配置:

from flask import Blueprint

passport_blue = Blueprint('passport',__name__, url_prefix="/passport")

from . import views

views文件配置:

from . import passport_blue
from flask import request, abort, current_app, make_response
from info.utils.captcha.captcha import captcha
from info import sr


@passport_blue.route('/image_code')
def image_code():
    """
    生成图片验证码
    1.接收参数(uuid)
    2.校验参数
        2.1校验是否携带参数
    3.生成图片验证
    4.将图片验证码的文本保存到Redis中
    5.返回图片对象
    
    :return: 图片响应对象
    """
    # 生成图片验证码
    # 1.接收参数(uuid)

    imageCodeId = request.args.get('imageCodeId')
    # 2.校验参数
    #     2.1校验是否携带参数

    if not imageCodeId:
        abort(403)
    # 3.生成图片验证

    name, imageCodeIdText, imageCode = captcha.generate_captcha()
    # 4.将图片验证码的文本保存到Redis中

    try:
        sr.set("imageCode:"+imageCodeId, imageCodeIdText)
    except Exception as e:
        current_app.logger.error(e)
        abort(500)
    # 5.返回图片对象

    response = make_response(imageCode)
    response.headers['Content-Type'] = 'image/jpg'

    return response

最终效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值