Login
网站首页 > 文章中心 > 其它

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

作者:小编 更新时间:2023-10-09 10:11:19 浏览量:398人看过

细致的Python Flask实现图片验证码与邮箱验证码流程详细讲解,以下就是教程:

1. 图片验证码的流程

1.1 安装依赖库

首先要安装依赖库,可以使用pip直接安装如下库


Python_Flask实现图片验证码与邮箱验证码流程详细讲解-图1

pip install flask flask-wtf Pillow

Flask是Web框架

Flask-wtf是Flask的表单框架

Pillow是Python中的图像处理库

1.2 创建Flask应用及路由

在Python文件中,我们需要导入相关的库,用Flask来搭建我们的web应用,代码如下:

Python_Flask实现图片验证码与邮箱验证码流程详细讲解-图2

from flask import Flask, make_response, request, jsonify, session
from flask_wtf import CSRFProtect
from flask_wtf.csrf import generate_csrf
from PIL import Image, ImageDraw, ImageFont
import random
import io

此时此刻呢需要创建Flask实例,并设置一些属性,如下所示:

app = Flask(__name__)
app.config.from_pyfile('config.py')
csrf = CSRFProtect(app)

这里使用了一个叫config.py的配置文件,用来设置一些常规的配置项,如下所示:

#debug模式
DEBUG = True
#安全密钥
SECRET_KEY = 'i-am-a-secret-key'
#CSRF保护
WTF_CSRF_ENABLED = True

接着创建Route来设置URL和URL处理函数,代码如下:

@app.route('/')
def index():
pass

Python_Flask实现图片验证码与邮箱验证码流程详细讲解-图3

我们目前只是声明了Route方法,函数的实现我们会在后面进行说明.

1.3 开始生成验证码代码

生成验证码的主要三个过程:

生成随机字符串

绘制验证码图像

返回图像

我们分步骤来看.

def generate_random():
    '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 4))

def generate_captcha_image(random_str):
return image

这个方法将会接收一个字符串参数random_str,然后生成相应的验证码图像,步骤如下:

@app.route('/gen_captcha', methods=['GET'])
def generate_captcha():
return response

1.4 验证码校验

此时此刻呢,我们校验验证码输入是否正确.在某个验证需求的位置,我们定义如下接口:

@app.route('/verify_captcha', methods=['POST'])
def verify_captcha():
return jsonify({'status': '1', 'msg': '验证成功'})

其实这个接口就是一个标准的POST Form提交处理,从Session中获取到验证码字符串的值,然后比对用户提交的值,如果一致则表示验证成功,否则就是验证失败.

1.5 完整的示例

完整的样例代码可以到这里查看.

2. 邮箱验证码的流程

2.1 安装依赖库

在我们开始之前,需要先安装如下库:

pip install flask flask-wtf flask-mail

Flask-mail是Flask邮件框架

2.2 邮箱配置

能够使用发邮件的服务(SMTP)就行,今天这一节我使用网易邮件来提供SMTP服务,当然,其他也是可以的,如下是配置信息:

注意:这里需要修改'你的邮箱地址'和'你的邮箱密码'才能进行使用.

2.3 发送邮件

先创建一个邮件实例对象msg,在构造该对象的过程中需要添加发送者和接收者的信息以及邮件内容,如下所示:

from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)

app.config.update(
msg.body = '邮件正文 

测试Flask发送邮件!

' return "发送邮件成功"

这里用到了邮件框架中的Mail和Message两个类,分别用于邮件的实例创建和邮件类型以及信息的设置.

2.4 生成验证码

话不多说直接上代码,如下所示:

def generate_random():
return code

这个方法用于生成四位数的随机验证码,并将授权码发送到指定邮箱地址.

2.5 完整的示例

完整的样例代码可以到这里查看,更多注释请查看代码.

以上就是土嘎嘎小编为大家整理的Python_Flask实现图片验证码与邮箱验证码流程详细讲解相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章