flask_图片验证码

该博客介绍了如何在Flask应用中实现图片验证码功能,并利用Redis作为存储介质。验证码编号由前端通过uuid生成,后端负责保存真实验证码号及编号。详细步骤和代码示例可在提供的百度网盘链接中找到,包括具体存放位置和使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用redis进行保存
  2. redis数据结构使用字符串
  3. redis中保存真实验证码号以及验证码编号,编号由前端使用uuid生成,发送给后端

文件在
https://pan.baidu.com/s/1ltcDzwwN-2OsPwNN03x3zw 中的captche中
将文件放置在utils目录中,captcha中有使用方法,只需要调用接口并且使用即可。
目的:生成接口,并且连接redis数据库进行数据存储。

from . import api
from flask import jsonify, make_response
from ihome.utils.captcha.captcha import captcha
from flask import current_app
from ihome import redis_store,contstants
from ihome.utils.response_code import RET

# 这个接口属于内部接口,是由浏览器进行调用,所以对于image_code_id没有实行检验。
# 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: 正常:验证码图片  异常:返回错误信息
	"""
	# 业务逻辑处理
	# 生成验证码图片
	# 名字, 真实文本, 图片数据
	name, text, image_data = captcha.generate_captcha()
	# 将验证码真实值与编号保存到redis中,设置有效期
	# redis 数据类型
	# hash list str set zset 使用哈希维护有效期时只能整体设置,不方便
	# "key": value
	# 单条维护记录选用字符串类型
	# "image_code_编号":"真实值",
	# redis_store.set("image_code_%s" % image_code_id, text)
	# redis_store.expire("image_code_%s" %image_code_id, 		contstants.IMAGE_CODE_REDIS_EXPIRES)
	#                      记录名            验证码编号                   验证码有效期         验证码文本
	try:
    	redis_store.setex("image_code_%s" % image_code_id,	 contstants.IMAGE_CODE_REDIS_EXPIRES, text)
	except Exception as e:
    	# 写入日志中
    	current_app.logger.error(e)
    	return jsonify(errno=RET.DBERR, errmsg="save image code failed...")

	# 返回图片
	resp = make_response(image_data)
	resp.headers["Content-Type"] = "image/jpg"
	return resp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值