1.1 工具类-utility.py
将所有和图片验证码有关的方法放在类 ImageCode
此时可以在上面的类中加上下面的代码,单独运行一下,看图片验证码是否会生成
ImageCode().draw_verify_code()
如果正常运行的话,会默认打开自己电脑的图片查看器,然后显示一张图片验证码
还可以在图片验证码中加上干扰线
在 类ImageCode 中,生成验证码方法 draw_verify_code() 的上面加上绘制干扰线的方法,然后在绘制时进行调用
绘制干扰线方法
绘制图片验证码时,在 im.show() 前调用上述绘制干扰线的方法
方法如下:
然后再次运行,效果如下:
上述的图片是存储在内存里的,关闭图片后,程序会自动终止
因为最终图片是要返回到前端的,所以上述生成验证码的方法还需再次进行修改,如下:
1.2 控制层-user.py
将图片返回给前端
将上述控制器注册进程序的主入口 main.py
到这里,图片验证码的后端已全部实现
至于前端的话,大家在自己想要放置图片验证码的地方,加个 img 标签即可,然后 src 属性里的值为上述控制器的接口,如下:
<img src="/vcode"
style="cursor:pointer;"/>
要想和网上那些点击图片验证码之后,重新生成新的图片验证码的话,就加上一个 onclick 事件
<img src="/vcode" id="loginvcode" class="col-3" style="cursor:pointer;" onclick="this.src='/vcode?'+Math.random()"/>
至于为什么后面要加一个随机数,是因为如果不加的话,前端浏览器识别到是一样的请求时,就不会重新发送,除非你强制刷新页面。但是加个随机数的话,浏览器发现每个请求都是不一样的,就会正常的发送到后端
2. 邮箱验证码
2.1 准备
此次举例使用的是QQ邮箱,使用其他邮箱也可以,操作大致一样
登录自己的QQ邮箱,开通 POP3/SMTP 服务,然后在各自的界面下找到“生成授权码”的按钮,按照各自的流程生成授权码
2.2 工具类-utility.py
在上述的工具类中新增方法
注意,最好不要将方法放在 类ImageCode,就单独放在外面就可以了,也可以新增一个邮箱类,然后放在里面
本人就直接放在外面
2.3 控制层-user.py
到这里,邮箱验证码的后端已全部实现
到此这篇关于Python Flask实现图片验证码与邮箱验证码流程详细讲解的文章就介绍到这了,更多相关Python验证码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农网!