日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flask实战第41天:发送短信验证码

發(fā)布時間:2024/6/30 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask实战第41天:发送短信验证码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本項目使用的短信運營商是阿里云。使用淘寶賬號登錄阿里云控制臺。在“產(chǎn)品與服務(wù)”中搜索“短信”進入短信服務(wù)

獲取AccessKey

輸入子賬戶用戶名

權(quán)限選擇管理短信服務(wù)

?

?

簽名管理:申請簽名

模板管理:設(shè)置模板

?

下載發(fā)送短信Python SDK

下載的壓縮包為:dysms_python.zip

加壓后,進入項目虛擬環(huán)境,進入到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"#阿里大魚相關(guān)配置 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)# 短信模板變量參數(shù)if template_param is not None:smsRequest.set_TemplateParam(template_param)# 設(shè)置業(yè)務(wù)請求流水號,必填。business_id = uuid.uuid1()smsRequest.set_OutId(business_id)# 短信簽名 smsRequest.set_SignName(SING_NAME)# 數(shù)據(jù)提交方式# smsRequest.set_method(MT.POST)# 數(shù)據(jù)提交格式# smsRequest.set_accept_format(FT.JSON)# 短信發(fā)送的號碼列表,必填。 smsRequest.set_PhoneNumbers(phone_numbers)# 調(diào)用短信發(fā)送接口,返回jsonsmsResponse = acs_client.do_action_with_exception(smsRequest)# TODO 業(yè)務(wù)處理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)))

?

把發(fā)送短信也放到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就是發(fā)發(fā)送的驗證碼,code就是模板中定義的變量result = send_sms('你接收短信的手機號碼', json.dumps(params))if result:return '發(fā)送成功'else:return '發(fā)送失敗'

訪問瀏覽器:http://127.0.0.1:/sms_captcha/

你的手機應(yīng)該成功收到短信了,和之前定義的模板一樣

?

轉(zhuǎn)載于:https://www.cnblogs.com/sellsa/p/9498745.html

總結(jié)

以上是生活随笔為你收集整理的Flask实战第41天:发送短信验证码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。