Python3版本Django实现免费手机验证码注册
Demo代码已放上GitHub,实现登录短信校验+极验验证
https://github.com/ChenJhua/TestLogin
- 打开网站互亿无线注册一个账号,有50条免费短信
登录进去后会有以下页面
使用图中的APIID和APIKEY开启你的免费手机短信旅程,可以使用接口下载、接口帮助实现Django手机短信验证
开始我的短信教程
1.注册页面加入两个文本框
<li><label for="">手机号码:</label><input type="text" placeholder="11位数的手机号码" id="mobile" name="mobile"/><span class="error_tip">提示信息</span></li><li><label for="">验证码:</label><input type="text" name="code" placeholder="请输入手机验证码" style="width: 140px;"> <input type="button" value=" 获取验证码" id="zphone" style="width: 100px;margin-left: 10px"></li>
在models.py中定义手机号码字段:
# 不要定义int型,否则存不进数据库,会报错,Out of range# 建议使用char类型uphone = models.CharField(max_length=11)
2.使用js+ajax请求短信发送和按钮计时触发
$('#zphone').click(function(){//发送验证码$.get('/user/send_message', {mobile:$('#mobile').val()}, function(msg) {alert(jQuery.trim(msg.msg));if(msg.msg=='提交成功'){RemainTime();}});})//按钮倒计时var iTime = 60;sTime = ''function RemainTime(){if (iTime == 0) {document.getElementById('zphone').disabled = false;sTime="获取验证码";iTime = 60;document.getElementById('zphone').value = sTime;return;}else{document.getElementById('zphone').disabled = true;sTime="重新发送(" + iTime + ")";iTime--;}setTimeout(function() { RemainTime() },1000)document.getElementById('zphone').value = sTime;}// 检查用户输入的手机号是否合法function check_mobile() {var re = /^1[345678]\d{9}$/; //校验手机号if(re.test($('#mobile').val())){$('#mobile').next().hide();error_mobile = false;document.getElementById('zphone').disabled = false;}else{$('#mobile').next().html('你输入的手机格式不正确')$('#mobile').next().show();error_mobile = true;document.getElementById('zphone').disabled = true;}}
3.配置url
url(r'^send_message$', views.send_message, name='send_message'),
4.定义发送短信的视图函数
# 请求的路径
host = "106.ihuyi.com"
sms_send_uri = "/webservice/sms.php?method=Submit"
# 用户名是登录ihuyi.com账号名(例如:cf_demo123)
account = "C44****38"
# 密码 查看密码请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY
password = "ddd**************30 "def send_message(request):"""发送信息的视图函数"""# 获取ajax的get方法发送过来的手机号码mobile = request.GET.get('mobile')# 通过手机去查找用户是否已经注册user = User.objects.filter(uphone=mobile)if len(user) == 1:return JsonResponse({'msg': "该手机已经注册"})# 定义一个字符串,存储生成的6位数验证码message_code = ''for i in range(6):i = random.randint(0, 9)message_code += str(i)# 拼接成发出的短信text = "您的验证码是:" + message_code + "。请不要把验证码泄露给其他人。"# 把请求参数编码params = urllib.parse.urlencode({'account': account, 'password': password, 'content': text, 'mobile': mobile, 'format': 'json'})# 请求头headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}# 通过全局的host去连接服务器conn = http.client.HTTPConnection(host, port=80, timeout=30)# 向连接后的服务器发送post请求,路径sms_send_uri是全局变量,参数,请求头conn.request("POST", sms_send_uri, params, headers)# 得到服务器的响应response = conn.getresponse()# 获取响应的数据response_str = response.read()# 关闭连接conn.close()# 把验证码放进session中request.session['message_code'] = message_codeprint(eval(response_str.decode()))# 使用eval把字符串转为json数据返回return JsonResponse(eval(response_str.decode()))
Python3版本Django实现免费手机验证码注册相关推荐
- Python3版本Django实现免费极验验证码
Demo代码已放上GitHub,实现登录短信校验+极验验证 https://github.com/ChenJhua/TestLogin 1.先到极验验证网站注册一个账号,登录上去 2.创建应用 3.出 ...
- springboot整合redis之用户手机验证码注册登录
目录 1搭建项目开发环境 1.1安装redis 1.1.1下载redis 1.1.2安装redis 1.1.3设置redis为windows服务 安装为windows服务 1.2启动idea 1.3增 ...
- 手机验证码注册,登录
//前端登录页面表单及javascript+ajax传输 <input type="text" name="nickname" placeholder= ...
- 使用容联云通讯实现手机验证码注册
添加Pom文件以及下lib下添加jar包 添加main方法测试,发送手机验证码 package javamaildemo;import java.util.HashMap; import java.u ...
- Security实现手机验证码注册登录
准备工作: <!-- 导入security依赖 --> <dependency><groupId>org.springframework.boot</grou ...
- 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...
- flask创建手机验证码发送逻辑
flask创建手机验证码发送逻辑 同样的,回顾django中使用手机验证码的逻辑,大致可以分为几步 1.获取用户手机号码 2.校验手机号码 3.生成验证码 4.将验证码添加手机号查询方式添加到redi ...
- 手机验证码平台,怎么发送手机验证码,php开发手机验证码短信接口功能
通过前面的学习, 你已经掌握怎么在腾讯短信平台上设置项目, 添加短信签名, 设置短信模板, 把手机验证码注册页面写好. 今天子恒老师来跟你分享怎么实现发送手机验证码给用户, 注意我们使用的是php开发 ...
- 多因素身份认证 (MFA) 插件:手机验证码认证因素配置流程
功能介绍 对用户表扩展手机号码字段,允许用户通过手机号码与验证码的方式进行认证,注册,重置密码以及更换手机号. 多因素身份认证 (MFA) 是保护企业 IT 资源访问安全的一种关键工具,也是零信任安全 ...
最新文章
- 基于锚框与无需锚框的通用物体检测算法
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(一 硬件驱动层)
- C++文件交互(txt、excel)
- linux nginx 配置优化,nginx 配置优化指令
- 利用HTML5 LocalStorage实现跨页面通信channel
- python练习题及答案-python编程练习题和答案.doc
- 腾讯云启动 tomcat 很慢的问题
- EasyRecovery如何恢复CMake项目文件
- Java8 实战系列-01-序章
- 北京邮电大学计算机考研经验分享
- 调用restFul接口如何实现返回的数据编码格式为utf-8
- H5和原生开发的区别
- iphone及ipad屏幕尺寸参考
- win10 程序最小化不在任务栏了?在左下角
- 自动化学科国家自然基金委十二五规划 2009年12月
- Qualcomm QTV Player
- 算法初探系列4 - 广度优先搜索之图上搜索
- 网页设计怎么都不会错的6条配色原则。
- Win10系统将桌面从C盘移动到其他盘的方法
- T/CMSA 0027-2022 区域陆地碳汇评估技术指南