Python Flask实现图片验证码与邮箱验证码流程详细讲解

这篇文章主要介绍了如何利用Python生成随机的图片验证码与邮箱验证码,验证码是一种区分用户是计算机还是人的公共全自动程序,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起试试!

1. 图片验证码

1.1 工具类-utility.py

将所有和图片验证码有关的方法放在类 ImageCode

此时可以在上面的类中加上下面的代码,单独运行一下,看图片验证码是否会生成

如果正常运行的话,会默认打开自己电脑的图片查看器,然后显示一张图片验证码

Python Flask实现图片验证码与邮箱验证码流程详细讲解

还可以在图片验证码中加上干扰线

在 类ImageCode 中,生成验证码方法 draw_verify_code() 的上面加上绘制干扰线的方法,然后在绘制时进行调用

绘制干扰线方法

绘制图片验证码时,在 im.show() 前调用上述绘制干扰线的方法

方法如下:

然后再次运行,效果如下:

Python Flask实现图片验证码与邮箱验证码流程详细讲解

上述的图片是存储在内存里的,关闭图片后,程序会自动终止

因为最终图片是要返回到前端的,所以上述生成验证码的方法还需再次进行修改,如下:

1.2 控制层-user.py

将图片返回给前端

将上述控制器注册进程序的主入口 main.py

到这里,图片验证码的后端已全部实现

至于前端的话,大家在自己想要放置图片验证码的地方,加个 img 标签即可,然后 src 属性里的值为上述控制器的接口,如下:

要想和网上那些点击图片验证码之后,重新生成新的图片验证码的话,就加上一个 onclick 事件

至于为什么后面要加一个随机数,是因为如果不加的话,前端浏览器识别到是一样的请求时,就不会重新发送,除非你强制刷新页面。但是加个随机数的话,浏览器发现每个请求都是不一样的,就会正常的发送到后端

2. 邮箱验证码

2.1 准备

此次举例使用的是QQ邮箱,使用其他邮箱也可以,操作大致一样

登录自己的QQ邮箱,开通 POP3/SMTP 服务,然后在各自的界面下找到“生成授权码”的按钮,按照各自的流程生成授权码

Python Flask实现图片验证码与邮箱验证码流程详细讲解

2.2 工具类-utility.py

在上述的工具类中新增方法

注意,最好不要将方法放在 类ImageCode,就单独放在外面就可以了,也可以新增一个邮箱类,然后放在里面

本人就直接放在外面

2.3 控制层-user.py

到这里,邮箱验证码的后端已全部实现

正文完
 0