Flask项目中实现短信验证码和邮箱验证码功能
Flask是一个用Python编写的Web应用程序框架,Flask是python的web框架,最大的特征是轻便,让开发者自由灵活的兼容要开发的feature。 它由 ArminRonacher 开发,他领导一个名为Pocco的国际Python爱好者团队。 Flask基于WerkzeugWSGI工具包和Jinja2模板引擎。两者都是Pocco项目。
这篇文章给大家介绍Flask项目中实现短信验证码和邮箱验证码功能,具体内容如下所示:
一、发送邮箱验证码
1、使用QQ邮箱发送验证码
①配置
开启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数据库。
fromflask_mailimportMessage,Mail mail=Mail() @bp.route('/email_captcha/') @login_requires defemail_captcha(): email=request.args.get('email') ifnotemail: returnrestful.params_error('请输入邮箱')#restful.封装的函数,返回前端数据 ''' 生成随机验证码,保存到memcache中,然后发送验证码,与用户提交的验证码对比 ''' captcha=str(uuid.uuid1())[:6]#随机生成6位验证码 #给用户提交的邮箱发送邮件 message=Message('Python论坛邮箱验证码',recipients=[email],body='您的验证码是:%s'%captcha) try: mail.send(message)#发送 except: returnrestful.server_error() mbcache.set(email,captcha) returnrestful.success()
点击立即修改,
以post请求发到后台,对用户提交的数据进行校验:拿出memcache中存储的验证码与用户提交的验证码对比,校验邮箱格式。校验通过后把新邮箱保存到数据库,返回前端提示信息。邮箱验证功能完成。
二、实现短信验证码
1、平台以及配置
平台:阿里大于
配置:1、添加模板
2、添加签名
3、获取
即下面的key和secret
2、flask中使用
config.py
#发送短信验证码配置 KEY="*******" SECRET="*******" alidayu.py发送短信功能实现 fromaliyunsdkcore.clientimportAcsClient#需要先下载包 fromaliyunsdkcore.requestimportCommonRequest importconfig defsend_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) returnstr(response,encoding='utf-8')
调用是send_sms('手机号','验证码'),即可发送短信。(当然余额得有钱.)
总结
以上所述是小编给大家介绍的Flask项目中实现短信验证码和邮箱验证码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。