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模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
python内置数据类型之列表操作
Nov 12 Python
python pytest进阶之xunit fixture详解
Jun 27 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
Django 全局的static和templates的使用详解
Jul 19 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
浅谈Python 函数式编程
Jun 20 Python
浅谈Django前端后端值传递问题
Jul 15 Python
python实现扫雷游戏的示例
Oct 20 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
一个捕获函数输出的函数
2007/02/14 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
input的focus方法使用
2010/03/13 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
js时间转换毫秒的实例代码
2019/08/21 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
Python类的基础入门知识
2008/11/24 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
爱护公共设施标语
2014/06/24 职场文书
租房安全协议书
2014/08/20 职场文书
出国签证在职证明
2014/09/20 职场文书
公司员工离职感言
2015/08/03 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
配置nginx负载均衡
2022/05/06 Servers