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--手机号注册生成验证码相关推荐

  1. 微信小程序手机号注册获取验证码+验证判断

    微信小程序手机号注册获取验证码+验证判断 扫描二维码,进入首页,找到"小程序演示",效果类->手机号码注册效果,点击进入即可.

  2. 用Django编写邮箱注册以及验证码

    1. 创建项目, 创建app, 创建temlplates, 创建static, 配置基础路由 能返回如下类似页面(博主使用的是Bootstrap的模板): 点击打开链接 2. 在models.py文件 ...

  3. 健康管理系统第七天(移动端_体检预约(手机号校验、发送验证码之后30秒倒计时效果、生成验证码、向手机发送验证码))

    一.体检预约流程 用户可以通过如下操作流程进行体检预约: 1.在移动端首页点击体检预约,页面跳转到套餐列表页面 2.在套餐列表页面点击要预约的套餐,页面跳转到套餐详情页面 3.在套餐详情页面点击立即预 ...

  4. Django 生成验证码或二维码 pillow模块

    一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用.   PIL模块只支持到Python 2 ...

  5. 短信验证(手机号注册,绑定手机号获取验证码)

    今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册按钮 ...

  6. Android短信验证(手机号注册,绑定手机号获取验证码)实例

    今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册 ...

  7. 登录注册 图片验证码生成

    登录注册时,需要添加图片验证码校验防止恶意攻击.步骤如下: 1.后台生成图片验证码流,并记录code值到Session或Redis 中 2.请求过来后,附带图片验证码,从session或redis中获 ...

  8. 生成验证码、模拟登录、手机号屏蔽

    生成验证码 package StringTest; import java.util.Random; import java.util.Scanner; public class Main {publ ...

  9. 【Python】多种方式实现生成验证码

    多种方式实现生成验证码 1.生成随机n位验证码 import random def make_random_code(n):res = ''for i in range(n):s = chr(rand ...

最新文章

  1. C# 视频多人脸识别的实现
  2. 三台机器之间root用户ssh互信配置
  3. h5 调起相机_Html5在手机端调用相机的方法实现
  4. 用perl获取可用的代理服务器地址
  5. Hibernate基础学习2
  6. 解决样本类别不平衡以及困难样本问题的方法总结
  7. 大学c语言下上机考试题,计算机考试二级C语言上机试题下[5]
  8. 提高国内访问GitHub速度的9种方案~
  9. 关于 Number() parsint() abs() 的区别
  10. Yii2语言国际化配置Twig翻译解决方案
  11. [转载]关于Microsoft Jet (msjet40.dll) Exploit
  12. xml生成java代码_在Eclipse中从XML生成Java代码
  13. Java 用反射设置对象的属性值
  14. 计算时间:一个C++运算符重载示例
  15. python自动化笔记_python自动化学习笔记(一)
  16. 于一次JSON格式错误 之 手把手带你走一波FastJSON将对象转成JSON字符串流程
  17. UniCode编码表 对照表
  18. 智能路由器自建服务器,路由器怎么设置服务器_路由器搭建服务器
  19. C轮融资已完成!思迈特软件领跑国内BI生态赋能,产品、服务竿头一步
  20. 格拉姆角场GAF将时序数据转换为图像并应用于故障诊断

热门文章

  1. stack、queue和priority_queue
  2. Lect5_Model_free_Control
  3. Widar2.0:SAGE算法和SAGE算法在在无线信道参数估计中的应用
  4. RTX服务器信息存档,Rtx/RTX服务器端基本应用(一)
  5. 用浏览器下载一个文件,当点击该文件(原理)
  6. 如何下载网页中的图片
  7. scotland yard
  8. CPU和内存之间关系的演变
  9. 使用git进行版本控制
  10. 百度网盘里的加密文件怎么看?