Django--手机号注册生成验证码
Django–手机号注册生成验证码
文章目录
- Django--手机号注册生成验证码
- 一、使用互亿无线短信服务
- 二、新建一个HTML页面
- 三、view界面
- 四、新建一个tools.py文件
- 注意:
一、使用互亿无线短信服务
1. 注册互亿无线账户(免费10条短信)
网址:https://www.ihuyi.com/
2. 点击验证码通知短信–>使用向导–>DEMO示例–>python
二、新建一个HTML页面
##############前端
============== 表单
1.输入框 1.手机号 2.验证码 3.密码
2.两个按钮 1.获取验证 2.提交表单
==============
1. 一个手机号 点击获取验证码 (**不是使用form表单提交) ---->ajax异步 发送邮箱(导入jquery文件)
2. 手机号 验证码 密码 提交表单 验证注册 {% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>手机号注册</title><script src="/static/jq/jquery.min.js"></script>
</head>
<body>
<form action="" method="post" style="text-align: center">
{% csrf_token %}
<div>手机号:<input type="text" name="phone" placeholder="请输入手机号" required="" id="phone_id" class="input"/>
</div>
<div>验证码:<input type="text" name="yz_code" placeholder="请输入验证码" required="" style='width: 150px' class="input" id="code"/><input class="huoqu" id="zphone" type="button" onclick="send_phone()" value=" 获取验证码 ">
</div>
<div>密码:<input type="password" name="password" placeholder="" required="" class="input"/>
</div>
<div><input type="submit" id="submit" style="align:center" value="注册" class="gouwu"/>
</div>
</form>
{% if error_msg %}<p style="text-align: center; color: red;">{{ error_msg }}</p>
{% endif %}
{% if succeed_msg %}<p style="text-align: center; color: red;">{{ succeed_msg }}</p>
{% endif %}
</body>
<script>function send_phone() {$.ajax({url:'http://127.0.0.1:8000/buyer/phone_register/',type:'get',data:'phone=' + document.getElementById('phone_id').value,success(){alert('发送成功')}})}
</script>
</html>
三、view界面
class Register_phone(View):def get(self, request):# 失败信息error_msg = ''# 成功信息succeed_msg = ''# 获取手机号phone = request.GET.get('phone')# 判断手机号是否注册is_seller = models.Buyer.objects.filter(phone=phone).first()if is_seller:# 失败信息error_msg = '手机号已注册'return render(request, 'buyer/register_phone.html', locals())if phone:# 利用 tools.py 内 send_note方法 发送短信send_p = send_note(phone)if send_p == 2:# 成功信息succeed_msg = '发送成功'return render(request, 'buyer/register_phone.html', locals())else:# 失败信息error_msg = send_preturn render(request, 'buyer/register_phone.html', locals())return render(request, 'buyer/register_phone.html', locals())def post(self, request):# 失败信息error_msg = ''# 成功信息succeed_msg = ''phone = request.POST.get('phone')yz_code = request.POST.get('yz_code')password = request.POST.get('password')# - 判断 手机号 密码不能为空if phone == '' or yz_code == '' or password == '':# 失败信息error_msg = '用户信息不能为空'return render(request, 'buyer/register_phone.html', locals())# - 判断 手机号是否注册is_buyer = models.Buyer.objects.filter(phone=phone).first()if is_buyer:# 失败信息error_msg = '用户注册'return render(request, 'buyer/register_phone.html', locals())# - 验证码判断if not REDIS_CON.get('PHONE_' + str(phone)):# 失败信息error_msg = '验证码已失效'return render(request, 'buyer/register_phone.html', locals())if REDIS_CON.get('PHONE_' + str(phone)).decode('utf-8') != yz_code:# 失败信息error_msg = '验证码不正确'return render(request, 'buyer/register_phone.html', locals())# - 注册成功 写入数据库models.Buyer.objects.create(phone=phone, password=make_password(password)).save()# 返回成功信息succeed_msg = '注册成功'return render(request, 'buyer/register_phone.html', locals())
四、新建一个tools.py文件
import requests
import random
from shop.settings import REDIS_CON
import json#定义随机验证码
def yz_code(phone):res = ''for i in range(6):rand = random.randint(0, 9)res += str(rand)REDIS_CON.set('PHONE_'+str(phone), res)REDIS_CON.expire('PHONE_'+str(phone), 60)return res#定义发送短信 方法
def send_note(phone):#三方 urlurl = 'https://106.ihuyi.com/webservice/sms.php?method=Submit'# APPIDaccount = 'C97682185'# APPKEYpassword = '39adb9c339bafec3cb47e6716915aff1'# 接受方手机号mobile = phone# 短信内容content = f'您的验证码是:{yz_code(phone)}。请不要把验证码泄露给其他人。'#返回格式format = 'json'data = {'account': account,'password': password,'mobile': mobile,'content': content,'format': format}req = requests.post(url=url, data=data).content.decode('utf-8')if json.loads(req)['code'] == 2:return 2else:return json.loads(req)['msg']
注意:
Django--手机号注册生成验证码相关推荐
- 微信小程序手机号注册获取验证码+验证判断
微信小程序手机号注册获取验证码+验证判断 扫描二维码,进入首页,找到"小程序演示",效果类->手机号码注册效果,点击进入即可.
- 用Django编写邮箱注册以及验证码
1. 创建项目, 创建app, 创建temlplates, 创建static, 配置基础路由 能返回如下类似页面(博主使用的是Bootstrap的模板): 点击打开链接 2. 在models.py文件 ...
- 健康管理系统第七天(移动端_体检预约(手机号校验、发送验证码之后30秒倒计时效果、生成验证码、向手机发送验证码))
一.体检预约流程 用户可以通过如下操作流程进行体检预约: 1.在移动端首页点击体检预约,页面跳转到套餐列表页面 2.在套餐列表页面点击要预约的套餐,页面跳转到套餐详情页面 3.在套餐详情页面点击立即预 ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
- 短信验证(手机号注册,绑定手机号获取验证码)
今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册按钮 ...
- Android短信验证(手机号注册,绑定手机号获取验证码)实例
今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册 ...
- 登录注册 图片验证码生成
登录注册时,需要添加图片验证码校验防止恶意攻击.步骤如下: 1.后台生成图片验证码流,并记录code值到Session或Redis 中 2.请求过来后,附带图片验证码,从session或redis中获 ...
- 生成验证码、模拟登录、手机号屏蔽
生成验证码 package StringTest; import java.util.Random; import java.util.Scanner; public class Main {publ ...
- 【Python】多种方式实现生成验证码
多种方式实现生成验证码 1.生成随机n位验证码 import random def make_random_code(n):res = ''for i in range(n):s = chr(rand ...
最新文章
- C# 视频多人脸识别的实现
- 三台机器之间root用户ssh互信配置
- h5 调起相机_Html5在手机端调用相机的方法实现
- 用perl获取可用的代理服务器地址
- Hibernate基础学习2
- 解决样本类别不平衡以及困难样本问题的方法总结
- 大学c语言下上机考试题,计算机考试二级C语言上机试题下[5]
- 提高国内访问GitHub速度的9种方案~
- 关于 Number() parsint() abs() 的区别
- Yii2语言国际化配置Twig翻译解决方案
- [转载]关于Microsoft Jet (msjet40.dll) Exploit
- xml生成java代码_在Eclipse中从XML生成Java代码
- Java 用反射设置对象的属性值
- 计算时间:一个C++运算符重载示例
- python自动化笔记_python自动化学习笔记(一)
- 于一次JSON格式错误 之 手把手带你走一波FastJSON将对象转成JSON字符串流程
- UniCode编码表 对照表
- 智能路由器自建服务器,路由器怎么设置服务器_路由器搭建服务器
- C轮融资已完成!思迈特软件领跑国内BI生态赋能,产品、服务竿头一步
- 格拉姆角场GAF将时序数据转换为图像并应用于故障诊断