本项目使用的短信运营商是阿里云。使用淘宝账号登录阿里云控制台。在“产品与服务”中搜索“短信”进入短信服务

获取AccessKey

输入子账户用户名

权限选择管理短信服务

签名管理:申请签名

模板管理:设置模板

下载发送短信Python SDK

下载的压缩包为:dysms_python.zip

加压后,进入项目虚拟环境,进入到dysms_python目录,进行安装

在项目工具包utrils新建个python package命名为aliyunsms

把dysms_python目录中的以下文件或目录拷贝到aliyunsms

把demo_sms_send.py修改名字为sms_send.py,里面的代码修改后为

import sys
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider
import json
from aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"#阿里大鱼相关配置
ACCESS_KEY_ID = '填写你自己的'
ACCESS_KEY_SECRET = '填写你自己的'
SING_NAME = "你的短信签名"
TEMPLATE_CODE = "填写你自己的模板CODE"acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)def send_sms(phone_numbers, template_param=None):smsRequest = SendSmsRequest.SendSmsRequest()# 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(TEMPLATE_CODE)# 短信模板变量参数if template_param is not None:smsRequest.set_TemplateParam(template_param)# 设置业务请求流水号,必填。business_id = uuid.uuid1()smsRequest.set_OutId(business_id)# 短信签名
    smsRequest.set_SignName(SING_NAME)# 数据提交方式# smsRequest.set_method(MT.POST)# 数据提交格式# smsRequest.set_accept_format(FT.JSON)# 短信发送的号码列表,必填。
    smsRequest.set_PhoneNumbers(phone_numbers)# 调用短信发送接口,返回jsonsmsResponse = acs_client.do_action_with_exception(smsRequest)# TODO 业务处理return smsResponseif __name__ == '__main__':# print(__business_id)params = {'code': 1234}# params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'print(send_sms("13xxxxxxxxx", json.dumps(params)))

把发送短信也放到common里面去,编辑common.views.py中写个视图

...
from utils.aliyunsms.send_sms import send_sms
import json@bp.route('/sms_captcha/')
def sms_captcha():params = {'code':'abcd'} #abcd就是发发送的验证码,code就是模板中定义的变量result = send_sms('你接收短信的手机号码', json.dumps(params))if result:return '发送成功'else:return '发送失败'

访问浏览器:http://127.0.0.1:/sms_captcha/

你的手机应该成功收到短信了,和之前定义的模板一样

转载于:https://www.cnblogs.com/sellsa/p/9498745.html

Flask实战第41天:发送短信验证码相关推荐

  1. flask容联云发送短信验证码和异步发送

    容联云地址:https://www.yuntongxun.com/ 获取短信验证码流程图 容联云配置 在容联云官网注册一个账号,发送短信验证码必须使用三个ID ACCOUNT SID   (主账户ID ...

  2. thinkphp6 发送短信验证码

    1.场景:通常在使用手机号注册时需要发送短信验证码,在修改密码等敏感操作时也需要验证手机号发送短信验证码. 短信验证码的目的:验证用户的身份是否本人 在项目代码中发送短信,通常要调用第三方短信商的短信 ...

  3. 魔方APP项目-05-注册功能实现,手机号唯一验证接口、客户端进行手机号验证、保存用户注册信息接口、客户端用户进行注册、使用云通讯发送短信,服务端实现发送短信验证码的api接口、客户端实现点击发送短信

    用户模块 注册功能实现 1.手机号码唯一验证接口 在开发中,针对客户端提交的数据进行验证或提供模型数据转换格式成字典给客户端.可以使用Marshmallow模块来进行. 为了方便导包,所以我们设置当前 ...

  4. java + maven 实现发送短信验证码功能

    如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...

  5. php榛子云短信验证,java + maven +榛子云短信 实现发送短信验证码功能

    如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信的接口. 下载下来是jar文件,需要将jar发布到本地的maven仓库中, 在cmd环境下输入: mvn install ...

  6. php实现短信找回密码,thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能...

    thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能 发布时间:2020-12-11 12:33:42 来源:亿速云 阅读:60 作者:小新 小编给大家分享一下thinkphp5怎么调用云 ...

  7. html5实现短信验证修改密码,thinkphp5如何调用云片接口实现发送短信验证码找回密码功能...

    下面由thinkphp框架教程栏目给大家介绍thinkphp5如何调用云片接口实现发送短信验证码找回密码功能,希望对需要的朋友有所帮助! 思路: 1.用户输入手机号,请求获取短信验证码. 2.thin ...

  8. JAVA实现利用第三方平台发送短信验证码

    前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例, ...

  9. JAVA利用第三方平台发送短信验证码

    本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过se ...

  10. 使用腾讯云模板发送短信验证码

    目录 学习目标: 学习内容: 学习时间: 学习过程: demo结构图: 效果图: 配置准备: 依赖pom.xml application.properties: application.yml 腾讯云 ...

最新文章

  1. 近90%公司亏损,泡沫破裂期将至:对于AI投资人的耐心还多吗
  2. go的错误处理(异常捕获、处理):defer+recover机制处理错误、自定义异常(自定义错误)
  3. 协调多个对象之间的交互——中介者模式
  4. 从零开始学Java编程!java集合类详解和使用
  5. ELMo代码详解(二)
  6. Android商城开发系列(一)——开篇
  7. System.Drawing.Text.TextRenderingHint 的几种效果
  8. java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)...
  9. Windows核心编程_远线程方式实现Dll注入
  10. 开放集合目标检测任务 Open-set Detection
  11. linux 禁ping
  12. UML中依赖(Dependency)和关联(Association)之间的区别
  13. atmega128 单片机 智能 台灯 控制器 PWM ADC 时间 光敏电阻 proteus 仿真
  14. 荐书 | 抑郁症的自助手册,觉察自我的钥匙
  15. ⑪(面试篇 3/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
  16. 【07月09日】预分红股息率最高排名
  17. 深入理解overlayfs(二):使用与原理分析
  18. centos 挂载iso光盘镜像文件
  19. 从 SPA 到 PWA:Web App的下一站在哪?
  20. c语言行列的互换及常见的错误类型

热门文章

  1. 有哪些大数据处理工具?
  2. 《盗墓笔记》使用的这套技术,让美术可以在场景中任意使用灯光
  3. 你以为的并不是你所以为的,《传说之下》Undertale打破游戏的墙
  4. 如何快速找到最优路线?深入理解游戏中寻路算法
  5. 递归_三要素_基础算法必备
  6. 我的Go+语言初体验——【三、spx案例测试_许式伟先生推荐补充(附-视频)】
  7. mongodb 对内存的严重占用以及解决方法
  8. iphone5登陆不了微信,提示“登录失败,连接失败,请检查网络设置”
  9. Linux下按日期删除文件
  10. OracleTimesten使用方法总结