python web验证码_python web框架Flask——手机短信验证码

下列代码都是以自己的项目实例讲述的,相关的文本内容很少,主要说明全在代码注释中。

我是使用阿里云云通信的短信服务,第一次使用会摸不着头绪,这里我们需要做些准备工作:

1、登陆自己的账号进入阿里云官网,没有账号的朋友们自行注册

2、在导航栏上搜索“短信服务”,没有添加的话应该会有“免费开通”按钮,再进入管理控制台(我们需要添加这个短信服务板块,这样控制台会有短信服务这个模块),管理控制台的页面:

3、添加api密钥,成功之后会自行生成一个入口api密钥 id 和 secret。

4、在第一张图片上点击“添加签名”和“添加模板”,添加完相关信息,需要相关人员审核。添加模板时需要注意:

5、写完所有的步骤,记得充值,冲个5块钱应该够了吧(反正是测试用的)

6、准备工作做完,现在接下来的都是复制粘贴代码了(python3的朋友需要:pip install aliyun-python-sdk-core-v3`  python2的朋友:pip install aliyun-python-sdk-core)

7、发送短信api接口配置

from aliyunsdkcore.client importAcsClientfrom aliyunsdkcore.request importCommonRequestclassAlidayu(object):"""api接口的初始化操作

accessKeyId: api密钥的入口id

accessSecret: api密钥的入口密码

regionId: 一般是你云服务器的地区

以上三个参数必不可少,封装成客户端实例

发送配置(都是固定的配置)分别是发送短信的格式、域名、方式、协议、版本"""

def __init__(self):

self.accessKeyId= "你的密钥入口id"self.accessSecret= "你的密钥入口secret"self.regionId= "cn-shanghai" #一般是上海或者杭州

self.client =AcsClient(self.accessKeyId, self.accessSecret, self.regionId)#发送配置(都是固定的配置)

self.comRequest =CommonRequest()

self.comRequest.set_accept_format("json")

self.comRequest.set_domain("dysmsapi.aliyuncs.com")

self.comRequest.set_method("POST")

self.comRequest.set_protocol_type("https")

self.comRequest.set_version("2017-05-25")defsend_sms(self, telephone, code):"""发送配置定义好,现在就是发送信息(验证码)

发送信息之前的四个参数也是必不可少的:

手机号码、短信签名名称、短信模板CODE、短信模板的内容参数值

最后通过客户发送即可

:param telephone: 手机号码

:param code: 随机验证码

:return:"""self.comRequest.set_action_name("SendSms")

self.comRequest.add_query_param("PhoneNumbers", "你的手机号码")

self.comRequest.add_query_param("SignName", "你的短信签名名称")

self.comRequest.add_query_param("TemplateCode", "你的模板CODE")#这个是你配置的短信模板的内容里的参数名称,变量名一定要一样

self.comRequest.add_query_param("TemplateParam", "{\"code\":\"%s\"}" %code)

response=self.client.do_action(self.comRequest)print(response)return response

8、编写一个视图函数,通过url访问就可以了

@bp.route("/sms_captcha")defsms_captcha():

telephone= request.args.get("telephone")if nottelephone:return restful.params_error(message="请输入手机号码")#借用图形验证码类中的获取随机验证码的方法

captcha = Captcha.gene_text(numbers=4).replace(" ", "")#上面的代码你可以删掉,把telephone换成具体的手机号码,captcha换成具体的验证码值

alidayu =Alidayu()ifalidayu.send_sms(telephone, captcha):#可以print打印一下验证

returnrestful.success()else:return restful.params_error(message="验证码发送失败!")

原文:https://www.cnblogs.com/aitiknowledge/p/11669114.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值