发送短信-----用restful 校验规则
我们的需求如下
1. 获取手机号
. 手机格式校验
. 生成随机验证码
. 验证码发送到手机上
. 把验证码+手机号保留(30s过期)
复习 我们在有表的情况下的序列化
class MessageSerializer(serializers.ModelSerializer):
"""
这段代码是我们在有表的时候使用的 现在没有表 我们用继承serializers.Serializer
下面的class Meta也不能要了
"""
class Meta:
model = "表"
fileds = "__all__"
没有表
def phone_validator(value):
if not re.match(r'^(1[3|4|5|6|7|8|9])\d{9}$', value):
raise ValidationError("手机号格式错误") class MessageSerializer(serializers.Serializer):
'''
只是默认验证phone不为空 自己要是想加验证 自己加一个 validators 还可以钩子校验
顺序 先校验默认不为空,在校验validators 在校验钩子函数
'''
phone = serializers.CharField(label="手机号", validators=[phone_validator,]) def validate_phone(self, value):
pass
在后端校验手机号 有两种方式
class MessageView(APIView):
def get(self, request, *args, **kwargs): '''
# . 获取手机号
phone = request.query_params.get('phone') # . 手机格式校验
# ①
'''
import re
if not re.match(r'^(1[3|4|5|6|7|8|9])\d{9}$',phone):
return Response("手机号格式错误")
'''
# ②
ser = MessageSerializer(data=request.query_params)if not ser.is_valid():
return Response({'status':False, 'message': '手机号格式错误'})
# . 生成随机验证码
import random
random_code = random.randint(, ) # . 验证码发送到手机上 购买服务器进行发送短信;阿里云/ 腾讯云 # todo tencent.send_message(phone,random_code) # . 把验证码+手机号保留(30s过期) setting要配置
# 5.1 搭建redis 腾讯云 阿里云 也有
# 5.2 django-redis
from django_redis import get_redis_connection
conn = get_redis_connection()
conn.set(phone, random_code, ex=)
4. 验证码发送到手机上 购买服务器进行发送短信;阿里云/ 腾讯云
https://www.cnblogs.com/a438842265/p/12366196.html
发送短信-----用restful 校验规则的更多相关文章
- day102:MoFang:后端完成对短信验证码的校验&基于celery完成异步短信发送&flask_jwt_extended&用户登录的API接口
目录 1.用户注册 1.后端完成对短信验证码的校验 2.基于celery实现短信异步发送 2.用户登录 1.jwt登录验证:flask_jwt_extended 2.服务端提供用户登录的API接口 1 ...
- C# Ajax 手机发送短信验证码 校验验证码 菜鸟级别实现方法
1.Ajax请求处理页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- Yii2发送短信验证码完全解决方案
概述 在做项目的时候,需要用到短信发送验证码功能.不能不说Yii2的牛逼,很容易就搞定了.下面我整理一下具体功能和流程,分享给大家. 主要功能 通过Yii2 rules验证手机号 通过js验证是否为手 ...
- day101:MoFang:模型构造器ModelSchema&注册功能之手机号唯一验证/保存用户注册信息/发送短信验证码
目录 1.模型构造器:ModelSchema 1.SQLAlchemySchema 2.SQLAlchemyAutoSchema 2.注册功能基本实现 1.关于手机号码的唯一性验证 2.保存用户注册信 ...
- #PHP# 华为云 API 方式发送短信
使用给华为云 消息 服务 API 方式发送短信 代码来自华为云,已通过测试 <?php /** * 华为云发送短信示例代码 * 本段代码需要使用自己的配置信息才能正常运行,出配置信息外,不需要改 ...
- Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘
apps目录的contacts应用(有读取通话记录功能),是访问provider目录的provider.contacts应用(有暴露通话记录),所以要阅读Android操作系统源码-->pack ...
- 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)
微信时代的今天,短信一样不可缺席,大系统都有集成短信接口.若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说, ...
- 发送短信——java
闲来无事研究一下调用第三方接口发送短信的技术 这一次我们使用阿里的短信服务 一.进行平台相关服务的注册和设置 下面请参照阿里的短信服务文档进行设置,只要按照文档步骤来差不多30分钟就能搞定服务注册: ...
- js 忘记密码发送短信记录cookie
<div class="forgetPwdBox" style="display:none"> <div class="forTit ...
随机推荐
- 全排列next_permutation()用法和构造函数赋值
全排列next_permutation()用法 在头文件aglorithm里 就是1~n数组的现在的字典序到最大的字典序的依次增加.(最多可以是n!种情况) int a[n]; do{ }while( ...
- JS动态添加删除html
本功能要求是页面传一个List 集合给后台而且页面可以动态添加删除html代码需求如下: 下面是jsp页面代码 <%@ page language="java" pageEn ...
- 涂涂影院APP-免费VIP电影观看「安卓APP」
最新下载链接:https://www.lanzous.com/u/niceyoo 2019年基本就没推广过这款APP,很失败,从第一版发布到现在涂涂影院已经做了2年了, 由于没有官网,所以基本百度能搜 ...
- CSS背景图片设置
*{ margin:0px; padding:0px; list-style: none; text-decoration: none; font-family: Arial,'Microsoft Y ...
- WPF 体系结构
转载地址:http://blog.csdn.net/changtianshuiyue/article/details/38963477 本主题提供 Windows Presentation Found ...
- Mybatis遇到的报错
MyBatis遇到的报错: 1.Caused by: org.xml.sax.SAXParseException; lineNumber: 35; columnNumber: 17; 元素类型为 &q ...
- jquery-ajax的用法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- SpringBoot 集成Log4j、集成AOP
集成Log4j (1)在pom.xml中添加依赖 <!--去掉springboot默认的日志--> <dependency> <groupId>org.spring ...
- django 模版标签笔记
一.模板变量笔记:1.在模版中使用变量,需要将变量放到‘{{}}’中.'{{ 变量 }}'2.如果想访问对象的属性,可以通过'对象.属性名'的方式访问3.如果想要访问一个字典的key对应的value, ...
- GCD的常用代码块
一.队列 1.获取全局的并发队列 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ...