Flask 验证码自动生成
Flask 验证码自动生成
想必验证码大家都有所了解,但是可以自己定义图片验证码,包含数字,英文以及数字计算,自动生成验证码。
生成图片以及结果
from captcha.image import ImageCaptchafrom PIL import Image
from random import choicesdef gen_captcha(content='2345689abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ'):"""生成验证码,可自定义,这里是生成验证码结果,以及验证码文件"""image = ImageCaptcha()# 获取字符串captcha_text = "".join(choices(content, k=4)).lower()# 生成图像captcha_image = Image.open(image.generate(captcha_text))return captcha_text, captcha_image
得到生成的验证码,进行处理,响应到页面
处理验证码
from io import BytesIO
from flask import make_response,session
# 生成验证码
def get_captcha():code, image = gen_captcha() #得到验证码内容out = BytesIO() # 操作二进制数据,实例化image.save(out, 'png') # 保存验证码图片out.seek(0)resp = make_response(out.read()) #将验证码图片的bytes制作成页面响应结果, 具体可查看make_response这个方法resp.content_type = 'image/png' # 告诉页面这个响应的类型return resp, code
制作响应路由,使用蓝图
蓝图
from flask import Blueprint, session, redirect, url_for, render_template, request
passport_bp = Blueprint('passport', __name__, url_prefix='/passport') # 生成蓝图passport_bp# 获取验证码
@passport_bp.get('/getCaptcha')
def get_captcha():resp, code = index_curd.get_captcha() #获取图片session["code"] = code # 验证码结果保存到session或者数据库中,这里保存在sessionreturn resp # 返回图片结果
html页面展示
html展示
"""
<img src="{{ url_for('passport.get_captcha') }}" class="codeImage" id="captchaImage"/>
"""
<script> # 使用的layui框架layui.use(['form', 'jquery', 'layer', 'button', 'popup'], function () {let form = layui.form;let $ = layui.jquery;let layer = layui.layer;let button = layui.button;let popup = layui.popup;let captchaPath = "{{ url_for('passport.get_captcha') }}";$("#captchaImage").click(function () { # 点击切换document.getElementById("captchaImage").src = captchaPath + "?" + Math.random();});setInterval(function () { # 30秒自动切换document.getElementById("captchaImage").src = captchaPath + "?" + Math.random();}, 30 * 1000);})
</script>

相关文章:
Flask 验证码自动生成
Flask 验证码自动生成 想必验证码大家都有所了解,但是可以自己定义图片验证码,包含数字,英文以及数字计算,自动生成验证码。 生成图片以及结果 from captcha.image import ImageCaptchafrom PIL import Image from random impo…...
vmpwn小总结
前言: 好久没有更新博客了,关于vm的学习也是断断续续的,只见识了几道题目,但是还是想总结一下,所谓vmpwn就是把出栈,进栈,寄存器,bss段等单独申请一块空闲实现相关的功能࿰…...
开源密码管理器 Bitwarden 一站式管理所有密码以及 2FA
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 随着注册的平台越来越多,管理密码的难度也越来越高了。要是把密码都设置成一样的,担心哪天某个平台泄露被一锅端,而每个平台单独一个密码又不太好记,这时候就…...
标准体重计算API集成指南
标准体重计算API集成指南 引言 在当今数字化和健康意识日益增长的时代,开发人员和健康管理专业人士不断寻找创新的方法来促进用户的健康生活。标准体重计算是一个关键的健康指标,它可以帮助个人了解自己的身体状况,并为制定合适的饮食和运动…...
多个终端查看的history不一样,如何确保多个终端会话之间的 history 一致,减少历史记录差异
问题: 在使用 Linux 系统时,history 命令显示的历史记录通常是与当前终端会话相关的。这就意味着,如果你在多个终端中打开会话,它们显示的历史记录可能不完全相同。这个问题通常是由以下原因引起的: 原因:…...
Spring Boot整合EasyExcel并行导出及Zip压缩下载
1. 项目依赖 首先,我们需要引入相关的依赖,包括 Spring Boot 和阿里巴巴的 EasyExcel 组件,此外还需要使用 Java 的 Zip 工具进行压缩操作。 <dependencies><!-- Spring Web --><dependency><groupId>org.springfr…...
Docker 对 iptables 规则的自动配置,这句话是什么意思
Docker 对 iptables 规则的自动配置指的是 Docker 守护进程 (daemon) 会自动管理 Linux 系统上的 iptables 规则,以便容器可以正确地进行网络通信。这对于大多数用户来说是一个方便的功能,因为它简化了容器网络配置。 具体来说,这意味着&…...
使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件
使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件 使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件1. 安装aarch64-unknown-linux-musl目标2. 安装交叉编译工具链安装musl-cross-make 3. 配置Rust编译器使用交叉编译工具链4. 编译你的Rust项目5. 运行或…...
【SpringBoot中出现循环依赖错误】
SpringBoot中出现循环依赖错误 在Spring Boot中,循环依赖(circular dependency)是指两个或多个bean相互依赖,形成一个闭合的依赖环。例如,Bean A依赖于Bean B,而Bean B又反过来依赖于Bean A。这种情况下&a…...
数据仓库-基于角色的权限管理(RBAC)
什么是基于角色的用户管理? 基于角色的用户管理(Role-Based Access Control,简称RBAC)是通过为角色赋予权限,用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…...
springboot3整合javafx解决bean注入问题
springboot整合javafx时候,很多问题就在于controller没有被spring容器管理,无法注入bean,在这里提供一套自己的解决思路 执行逻辑 这里仅仅提供一个演示,我点击按钮之后,从service层返回一个文本并显示 项目结构 创…...
.NET 8 Blazor Web项目中的 .razor 文件与 .cshtml 文件的本质区别
在.NET 8 Blazor Web项目中,.razor 和 .cshtml 文件是常用的视图文件格式。尽管它们看起来有相似之处,但在使用方式、功能和渲染机制上有着根本的不同。理解它们的本质区别,有助于开发者更好地选择合适的文件格式,并构建符合需求的…...
SpringBoot快速使用
一些名词的碎碎念: 1> 俩种网络应用设计模式 C/S 客户端/服务器 B/S 浏览器/服务器 俩者对比: 2> 集群和分布式的概念 集群: 分布式: 例子: 一个公司有一个人身兼多职 集群: 招聘N个和上面这个人一样身兼多职 分布式: 招聘N个人,分担上面这个人的工作,进行工作的拆分. 工…...
【C语言实现:用队列模拟栈与用栈模拟队列(LeetCode 225 232)】
LeetCode刷题记录 🌐 我的博客主页:iiiiiankor🎯 如果你觉得我的内容对你有帮助,不妨点个赞👍、留个评论✍,或者收藏⭐,让我们一起进步!📝 专栏系列:LeetCode…...
远程控制软件对比与使用推荐
远程控制软件对比与使用推荐 远程控制软件在现代工作环境中扮演着重要角色,无论是远程办公、技术支持、还是家庭成员之间的协助。以下是对几种常见远程控制软件的详细对比和推荐使用场景。 1. TeamViewer 特点 跨平台:支持Windows、macOS、Linux、iO…...
vue canvas 绘制选定区域 矩形框
客户那边文档相当的多,目前需要协助其将文档转为数据写入数据库,并与其他系统进行数据共享及建设,所以不得不搞一个识别的功能,用户上传PDF文档后,对于关键信息点进行识别入库! 以下为核心代码,…...
【SpringCloud】OpenFeign配置时间Decode
文章目录 1.自定义反序列化器2.配置类与自定义 ObjectMapper客户端 需求:OpenFeign配置自定义decode,解析http请求返回的时间字符串 1.自定义反序列化器 Date 自定义反序列化器 import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.j…...
Xerces-C,一个成熟的 C++ XML 解析库!
嗨,大家好!我是一行。今天咱们来探索 Xerces-C,它可是 C里超棒的 XML 解析库哦!能帮咱轻松处理 XML 数据,在很多数据交互、配置文件读取场景都超实用,快来一起学习使用它的妙招吧。 一、Xerces-C 是什么&am…...
6.2 MapReduce工作原理
MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对,而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…...
一次旧业务系统迁移收缩的经历
单位的一个业务系统,在几年前已经更换了。但旧的系统里面还有很多没有转移过来的数据,虽然普通用户不再需要用旧的系统,但相应部门的管理人员还需要在旧系统查询数据资料,这应该是旧系统向新系统迁移时,数据不彻底&…...
告别笨重电感!用这颗TI的TPS60503电荷泵芯片,给你的便携设备做个高效小体积电源
无电感电源革命:TPS60503电荷泵在便携设备中的极致能效设计 当智能手表在清晨用震动唤醒你,当无线耳机在通勤路上播放音乐,这些贴身电子设备背后都藏着一个关键矛盾——如何在指甲盖大小的空间里实现高效供电?传统电感式DCDC转换器…...
5分钟搞懂MTMCT:多目标多摄像头跟踪的实战应用与避坑指南
5分钟搞懂MTMCT:多目标多摄像头跟踪的实战应用与避坑指南 想象一下这样的场景:当你走进一家大型超市,天花板上数十个摄像头正无声地记录着每个顾客的移动轨迹。如何确保系统能准确识别同一个人在不同摄像头间的切换?这就是多目标多…...
突破平台限制:基于Go+Qt5的喜马拉雅音频下载解决方案
突破平台限制:基于GoQt5的喜马拉雅音频下载解决方案 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 喜马拉雅FM作为国内…...
手把手教你搭建基于Matlab/Simulink的插电式混合动力汽车4驱PHEV模型
基于Matlab/simulink的插电式混合动力汽车建模仿真模型4驱PHEV(比亚迪唐DM混动系统P2P4发动机——三擎四驱),包括整车HCU控制单元、发动机模型、驱动电机模型、ISG电机模型、AMT5档自动变速箱模型、驾驶员模型、电池能量管理控制模型等&#…...
从PMOS、NMOS到CMOS:揭秘现代芯片的互补设计哲学
1. 从PMOS与NMOS的相爱相杀说起 我第一次接触MOSFET晶体管是在大学实验室里,当时对着示波器上那些跳动的波形百思不得其解。教授指着电路板说:"记住,PMOS和NMOS就像电路世界的阴阳两极。"这句话让我花了整整三年时间才真正理解。 P…...
告别编译跳转失败!手把手教你为Nordic nRF Connect SDK工程配置VS Code Workspace
告别编译跳转失败!手把手教你为Nordic nRF Connect SDK工程配置VS Code Workspace 在嵌入式开发中,代码导航和智能感知是提升开发效率的关键。对于使用Nordic nRF Connect SDK的开发者来说,VS Code本应是一个强大的开发环境,但很多…...
终极Python自动化抢票神器:如何用DamaiHelper告别演唱会门票焦虑
终极Python自动化抢票神器:如何用DamaiHelper告别演唱会门票焦虑 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 在当今热门演出门票一票难求的时代,传统手动抢票方式已经…...
Python F1数据分析终极指南:5个高级技巧掌握赛车性能可视化
Python F1数据分析终极指南:5个高级技巧掌握赛车性能可视化 【免费下载链接】Fast-F1 FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry 项目地址: https://gitcode.com/GitHub_Trending/fa/Fas…...
AI率太高被退稿?这5款工具帮你稳过查重+降AI双关!
🔥 2026实测推荐:5款真正管用的工具1️⃣ 毕业之家 AI(毕业季救星)AI率效果:<8%亮点:专为国内高校定制,自动适配学校格式要求,连页眉页脚都不用手调价格:本科套餐199元…...
Flux Sea Studio 与Node.js全栈项目集成:打造在线海景艺术画廊
Flux Sea Studio 与Node.js全栈项目集成:打造在线海景艺术画廊 最近在做一个挺有意思的业余项目,想给喜欢海洋艺术的朋友们弄个在线画廊。这个画廊的特别之处在于,它不只是展示静态图片,而是能让用户自己动手,用文字描…...
