英文网站怎么推广,大数据培训,做电影网站技术,平面设计网站排行榜前十名有哪些Flask 验证码自动生成
想必验证码大家都有所了解#xff0c;但是可以自己定义图片验证码#xff0c;包含数字#xff0c;英文以及数字计算#xff0c;自动生成验证码。
生成图片以及结果
from captcha.image import ImageCaptchafrom PIL import Image
from random impo…Flask 验证码自动生成
想必验证码大家都有所了解但是可以自己定义图片验证码包含数字英文以及数字计算自动生成验证码。
生成图片以及结果
from captcha.image import ImageCaptchafrom PIL import Image
from random import choicesdef gen_captcha(content2345689abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ):生成验证码可自定义这里是生成验证码结果以及验证码文件image ImageCaptcha()# 获取字符串captcha_text .join(choices(content, k4)).lower()# 生成图像captcha_image Image.open(image.generate(captcha_text))return captcha_text, captcha_image得到生成的验证码进行处理响应到页面
处理验证码
from io import BytesIO
from flask import make_responsesession
# 生成验证码
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) }} classcodeImage idcaptchaImage/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