python web框架Flask——邮件验证码

本文详细介绍了如何使用Python的Flask框架发送邮件验证码,并通过Redis缓存进行验证的过程。首先,配置Flask-Mail扩展并发送邮件,接着设置Redis缓存以保存验证码,最后在后台验证前端提交的验证码是否正确,确保邮箱修改的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flask获取邮件验证码的全过程大致可以分为三大过程:(项目实例:修改邮箱)

在这里插入图片描述

1、发送邮件
1)首先我们需要配置邮件扩展,谈到扩展,我们就需要将扩展包和实例都放置在扩展文件中(我们需要下载:pip install flask-mail)

主目录/exts.py

from flask_mail import Mail
mail = Mail()

2)扩展类的实例都是需要绑定到app上(和前面提到的数据库db实例一样)

主目录/app.py

from exts import mail
from flask import Flask
def create_app():
    app = Flask(__name__)
    mail.init_app(app)
    return app

3)有扩展类的实例,却没有配置文件,这时我们需要在config.py文件中配置mail,使用了MAIL_USE_TSL的端口号,就将另一个端口注释掉,相关说明已经在代码中

主目录/config.py

# 发送者邮箱的服务器地址
MAIL_SERVER = "smtp.qq.com"

# MAIL_USE_TLS:端口号587
# MAIL_USE_SSL:端口号465
# QQ邮箱不支持非加密方式发送邮件
MAIL_PORT = 587
MAIL_USE_TLS = True
# MAIL_USE_SSL = False
MAIL_USERNAME = "599663430@qq.com"
MAIL_PASSWORD = "fmrlsciykefsbbha"
MAIL_DEFAULT_SENDER = "599663430@qq.com"

4)一些相关的文件需要借用上一篇的“python web框架Flask——csrf攻击”的文件,这里就添加一些必要的代码。在视图函数中配置一个url供我们访问(发送邮件)。另外我们从flask_mail包中导入Message类,创建消息类实例,第一个参数是邮件的标题,第二个参数是邮件的接收者,第三个参数是邮件的内容。定义好通过mail实例下的send()方法发送

主目录/app/cms/views.py

@bp.route("/email_captcha")
def email_captcha():
    """
    发送邮件我们不需要跳转页面,不需要重定向;邮件地址信息只需通过get方式请求即可
    后台获取邮件信息需要进行相关的判断,没有通过验证就将信息(状态码,信息)发送到前端页面(js文件处理)
    通过验证,我们需要自制验证码,将验证码发送到接收者邮件,并且以邮件地址为键,验证码为值保存到redis缓存中
    :return:
    """
    # /email_captcha/?email=X
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值