Flask项目中实现短信验证码和邮箱验证码功能


Posted in Python onDecember 05, 2019

Flask是一个用Python编写的Web应用程序框架,Flask是python的web框架,最大的特征是轻便,让开发者自由灵活的兼容要开发的feature。 它由 Armin Ronacher 开发,他领导一个名为Pocco的国际Python爱好者团队。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。

这篇文章给大家介绍Flask项目中实现短信验证码和邮箱验证码功能,具体内容如下所示:

一、发送邮箱验证码

1、使用QQ邮箱发送验证码

①配置

Flask项目中实现短信验证码和邮箱验证码功能

开启pop3/smtp服务

2、应用

①前端页面

②config.py

# 邮箱配置
# MAIL_USE_TLS:端口号587
# MAIL_USE_SSL:端口号465
# QQ邮箱不支持非加密方式发送邮件
# 发送者邮箱的服务器地址
MAIL_SERVER = "smtp.qq.com"
MAIL_PORT = '587'
MAIL_USE_TLS = True
# MAIL_USE_SSL
MAIL_USERNAME = "1414518976@qq.com"
MAIL_PASSWORD = "*****" # 生成授权码,授权码是开启smtp服务后给出的
MAIL_DEFAULT_SENDER = 1414518976@qq.com

③views.py

点击获取验证码,进入到以下视图,发送邮件,把验证码存到memcache数据库。

from flask_mail import Message,Mail
mail = Mail()
@bp.route('/email_captcha/')
@login_requires
def email_captcha():
  email = request.args.get('email')
  if not email:
    return restful.params_error('请输入邮箱') #restful. 封装的函数,返回前端数据
  '''
  生成随机验证码,保存到memcache中,然后发送验证码,与用户提交的验证码对比
  '''
  captcha = str(uuid.uuid1())[:6] # 随机生成6位验证码
  # 给用户提交的邮箱发送邮件
  message = Message('Python论坛邮箱验证码', recipients=[email], body='您的验证码是:%s' % captcha)
  try:
    mail.send(message) # 发送
  except:
    return restful.server_error()
  mbcache.set(email, captcha)
  return restful.success()

点击立即修改,

        以post请求发到后台,对用户提交的数据进行校验:拿出memcache中存储的验证码与用户提交的验证码对比,校验邮箱格式。校验通过后把新邮箱保存到数据库,返回前端提示信息。邮箱验证功能完成。

二、实现短信验证码

1、平台以及配置

平台:阿里大于

配置:1、添加模板

Flask项目中实现短信验证码和邮箱验证码功能

 2、添加签名

Flask项目中实现短信验证码和邮箱验证码功能

3、获取

Flask项目中实现短信验证码和邮箱验证码功能

Flask项目中实现短信验证码和邮箱验证码功能

即下面的key和secret

2、flask中使用

config.py

#发送短信验证码配置
KEY="*******"
SECRET="*******"
alidayu.py发送短信功能实现
from aliyunsdkcore.client import AcsClient #需要先下载包
from aliyunsdkcore.request import CommonRequest
import config
def send_sms(telephone, captcha):
  client = AcsClient(config.KEY, config.SECRET, 'cn-hangzhou')
  request = CommonRequest()
  request.set_accept_format('json')
  request.set_domain('dysmsapi.aliyuncs.com')
  request.set_method('POST')
  request.set_protocol_type('https') # https | http
  request.set_version('2017-05-25')
  request.set_action_name('SendSms')
  request.add_query_param('RegionId', "cn-hangzhou")
  request.add_query_param('PhoneNumbers', telephone) #发送的手机号
  request.add_query_param('SignName', "flask论坛") #SignName签名
  request.add_query_param('TemplateCode', "SMS_174806057") #模板id
  code = {}
  code['code'] = captcha
  request.add_query_param('TemplateParam', code) #模板中要填入的数据
  response = client.do_action(request)
  # python2: print(response)
  return str(response, encoding='utf-8')

调用是send_sms('手机号','验证码'),即可发送短信。(当然余额得有钱.)

总结

以上所述是小编给大家介绍的Flask项目中实现短信验证码和邮箱验证码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python从入门到精通(DAY 3)
Dec 20 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
Python的高阶函数用法实例分析
Apr 11 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
Python中使用gflags实例及原理解析
Dec 13 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
Python自带的IDE在哪里
Jul 01 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
python爬虫中url管理器去重操作实例
Nov 30 Python
Python for i in range ()用法详解
Sep 18 #Python
关于sys.stdout和print的区别详解
Dec 05 #Python
flask实现验证码并验证功能
Dec 05 #Python
使用python写一个自动浏览文章的脚本实例
Dec 05 #Python
Python字节单位转换实例
Dec 05 #Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 #Python
Python使用指定字符长度切分数据示例
Dec 05 #Python
You might like
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
实用函数7
2007/11/08 PHP
php适配器模式介绍
2012/08/14 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
js三种排序算法分享
2012/08/16 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
jquery实现图片轮播器
2017/05/23 jQuery
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python excel多行合并的方法
2020/12/09 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
商业房地产广告语
2014/03/13 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
pytorch MSELoss计算平均的实现方法
2021/05/12 Python