当前位置: 首页 > news >正文

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 验证码自动生成 想必验证码大家都有所了解&#xff0c;但是可以自己定义图片验证码&#xff0c;包含数字&#xff0c;英文以及数字计算&#xff0c;自动生成验证码。 生成图片以及结果 from captcha.image import ImageCaptchafrom PIL import Image from random impo…...

vmpwn小总结

前言&#xff1a; 好久没有更新博客了&#xff0c;关于vm的学习也是断断续续的&#xff0c;只见识了几道题目&#xff0c;但是还是想总结一下&#xff0c;所谓vmpwn就是把出栈&#xff0c;进栈&#xff0c;寄存器&#xff0c;bss段等单独申请一块空闲实现相关的功能&#xff0…...

开源密码管理器 Bitwarden 一站式管理所有密码以及 2FA

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 随着注册的平台越来越多&#xff0c;管理密码的难度也越来越高了。要是把密码都设置成一样的&#xff0c;担心哪天某个平台泄露被一锅端&#xff0c;而每个平台单独一个密码又不太好记&#xff0c;这时候就…...

标准体重计算API集成指南

标准体重计算API集成指南 引言 在当今数字化和健康意识日益增长的时代&#xff0c;开发人员和健康管理专业人士不断寻找创新的方法来促进用户的健康生活。标准体重计算是一个关键的健康指标&#xff0c;它可以帮助个人了解自己的身体状况&#xff0c;并为制定合适的饮食和运动…...

多个终端查看的history不一样,如何确保多个终端会话之间的 history 一致,减少历史记录差异

问题&#xff1a; 在使用 Linux 系统时&#xff0c;history 命令显示的历史记录通常是与当前终端会话相关的。这就意味着&#xff0c;如果你在多个终端中打开会话&#xff0c;它们显示的历史记录可能不完全相同。这个问题通常是由以下原因引起的&#xff1a; 原因&#xff1a…...

Spring Boot整合EasyExcel并行导出及Zip压缩下载

1. 项目依赖 首先&#xff0c;我们需要引入相关的依赖&#xff0c;包括 Spring Boot 和阿里巴巴的 EasyExcel 组件&#xff0c;此外还需要使用 Java 的 Zip 工具进行压缩操作。 <dependencies><!-- Spring Web --><dependency><groupId>org.springfr…...

Docker 对 iptables 规则的自动配置,这句话是什么意思

Docker 对 iptables 规则的自动配置指的是 Docker 守护进程 (daemon) 会自动管理 Linux 系统上的 iptables 规则&#xff0c;以便容器可以正确地进行网络通信。这对于大多数用户来说是一个方便的功能&#xff0c;因为它简化了容器网络配置。 具体来说&#xff0c;这意味着&…...

使用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中&#xff0c;循环依赖&#xff08;circular dependency&#xff09;是指两个或多个bean相互依赖&#xff0c;形成一个闭合的依赖环。例如&#xff0c;Bean A依赖于Bean B&#xff0c;而Bean B又反过来依赖于Bean A。这种情况下&a…...

数据仓库-基于角色的权限管理(RBAC)

什么是基于角色的用户管理&#xff1f; 基于角色的用户管理(Role-Based Access Control&#xff0c;简称RBAC)是通过为角色赋予权限&#xff0c;用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…...

springboot3整合javafx解决bean注入问题

springboot整合javafx时候&#xff0c;很多问题就在于controller没有被spring容器管理&#xff0c;无法注入bean&#xff0c;在这里提供一套自己的解决思路 执行逻辑 这里仅仅提供一个演示&#xff0c;我点击按钮之后&#xff0c;从service层返回一个文本并显示 项目结构 创…...

.NET 8 Blazor Web项目中的 .razor 文件与 .cshtml 文件的本质区别

在.NET 8 Blazor Web项目中&#xff0c;.razor 和 .cshtml 文件是常用的视图文件格式。尽管它们看起来有相似之处&#xff0c;但在使用方式、功能和渲染机制上有着根本的不同。理解它们的本质区别&#xff0c;有助于开发者更好地选择合适的文件格式&#xff0c;并构建符合需求的…...

SpringBoot快速使用

一些名词的碎碎念: 1> 俩种网络应用设计模式 C/S 客户端/服务器 B/S 浏览器/服务器 俩者对比: 2> 集群和分布式的概念 集群: 分布式: 例子: 一个公司有一个人身兼多职 集群: 招聘N个和上面这个人一样身兼多职 分布式: 招聘N个人,分担上面这个人的工作,进行工作的拆分. 工…...

【C语言实现:用队列模拟栈与用栈模拟队列(LeetCode 225 232)】

LeetCode刷题记录 &#x1f310; 我的博客主页&#xff1a;iiiiiankor&#x1f3af; 如果你觉得我的内容对你有帮助&#xff0c;不妨点个赞&#x1f44d;、留个评论✍&#xff0c;或者收藏⭐&#xff0c;让我们一起进步&#xff01;&#x1f4dd; 专栏系列&#xff1a;LeetCode…...

远程控制软件对比与使用推荐

远程控制软件对比与使用推荐 远程控制软件在现代工作环境中扮演着重要角色&#xff0c;无论是远程办公、技术支持、还是家庭成员之间的协助。以下是对几种常见远程控制软件的详细对比和推荐使用场景。 1. TeamViewer 特点 跨平台&#xff1a;支持Windows、macOS、Linux、iO…...

vue canvas 绘制选定区域 矩形框

客户那边文档相当的多&#xff0c;目前需要协助其将文档转为数据写入数据库&#xff0c;并与其他系统进行数据共享及建设&#xff0c;所以不得不搞一个识别的功能&#xff0c;用户上传PDF文档后&#xff0c;对于关键信息点进行识别入库&#xff01; 以下为核心代码&#xff0c…...

【SpringCloud】OpenFeign配置时间Decode

文章目录 1.自定义反序列化器2.配置类与自定义 ObjectMapper客户端 需求&#xff1a;OpenFeign配置自定义decode&#xff0c;解析http请求返回的时间字符串 1.自定义反序列化器 Date 自定义反序列化器 import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.j…...

Xerces-C,一个成熟的 C++ XML 解析库!

嗨&#xff0c;大家好&#xff01;我是一行。今天咱们来探索 Xerces-C&#xff0c;它可是 C里超棒的 XML 解析库哦&#xff01;能帮咱轻松处理 XML 数据&#xff0c;在很多数据交互、配置文件读取场景都超实用&#xff0c;快来一起学习使用它的妙招吧。 一、Xerces-C 是什么&am…...

6.2 MapReduce工作原理

MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对&#xff0c;而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…...

一次旧业务系统迁移收缩的经历

单位的一个业务系统&#xff0c;在几年前已经更换了。但旧的系统里面还有很多没有转移过来的数据&#xff0c;虽然普通用户不再需要用旧的系统&#xff0c;但相应部门的管理人员还需要在旧系统查询数据资料&#xff0c;这应该是旧系统向新系统迁移时&#xff0c;数据不彻底&…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...