图形验证码的设计与实现
准备工作:
1.将验证码包复制到apps下 verification子应用的libs文件下
2.设置验证码所需的redis库
设计图形验证码接口:
接口设计 1. 请求方式 选项 方案 请求方法 GET 请求地址 image_codes/(?P<uuid>[\w-]+)/ 2.请求参数:路径参数 参数名 类型 是否必传 说明 uuid string 是 唯一编号 3.响应结果: image / jpg
图形验证码的实现:
from apps.verifications.libs.captcha.captcha import captcha
class ImageCodeView(View): """图形验证码 GET http://www.***.com:8000/image_codes/uuid/ """ def get(self, request, uuid): """ 实现图形验证码逻辑 :param uuid: UUID :return: image/jpg """ # 生成图形验证码 text, image = captcha.generate_captcha() # 保存图形验证码 # 使用配置的redis数据库的别名,创建连接到redis的对象 redis_conn = get_redis_connection('verify_code') # 使用连接到redis的对象去操作数据存储到redis # redis_conn.set('key', 'value') # 因为没有有效期 # 图形验证码必须要有有效期的:设计是300秒有效期 # redis_conn.setex('key', '过期时间', 'value') redis_conn.setex('img_%s' % uuid, 300, text) # 响应图形验证码: image/jpg return HttpResponse(image, content_type='image/jpg')
配置url
urlpatterns = [ path('image_codes/<uuid:uuid>/', views.ImageCodeView.as_view()), ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?