发送短信-----用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 ...
随机推荐
- Update(stage3):第1节 redis组件:4、安装(略);5、数据类型(略);6、javaAPI操作;
第三步:redis的javaAPI操作 操作string类型数据 操作hash列表类型数据 操作list类型数据 操作set类型的数据 详见代码
- Spring Boot 2 实战:如何自定义 Servlet Filter
1.前言 有些时候我们需要在 Spring Boot Servlet Web 应用中声明一些自定义的 Servlet Filter 来处理一些逻辑.比如简单的权限系统.请求头过滤.防止 XSS 攻击等 ...
- 4 JavaScript异常&debugger&保留关键字
try:语句测试代码块错误 catch:语句处理错误,一般提供一个对象如catch(err)用来存储错误信息 throw: 语句创建自定义错误,抛出的信息可以被catch捕获 JavaScript错误 ...
- 华为事件对A股的影响思考
美国对华为实施禁商令: 利好:自主可控-替代品 软件:国产操作系统(中国软件,浪潮软件,湘邮科技...) 芯片:国产芯片(士微兰,国民技术...) 利好:华为优势产品 5G: 利好:反制资源 稀土永磁 ...
- Codeforces Round #588 (Div. 2)C(思维,暴力)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[27],b[27];int vis ...
- redis集群命令及常规操作
集群命令 [root@redis06 etc]# redis-cli --cluster help Cluster Manager Commands: create host1:port1 ... h ...
- 「CQOI2011」动态逆序对
「CQOI2011」动态逆序对 传送门 树套树. 删除一个位置的元素带来的减损数等于他前面大于它的和后面小于它的,然后这个直接树状数组套主席树维护一下就好了. 参考代码: #include <c ...
- 虚拟对抗训练(VAT):一种用于监督学习和半监督学习的正则化方法
正则化 虚拟对抗训练是一种正则化方法,正则化在深度学习中是防止过拟合的一种方法.通常训练样本是有限的,而对于深度学习来说,搭设的深度网络是可以最大限度地拟合训练样本的分布的,从而导致模型与训练样本分布 ...
- FTP的vsftpd.conf含义
# 设置为YES时vsftpd以独立运行方式启动,设置为NO时以xinetd方式启动 #(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗) listen=YES # 同上,如 ...
- Ubuntu系统为MySQL开启远程连接
第一步:确保 Ubuntu 系统已经安装上了MySQL数据库.登陆数据库 ,运行如下命令: mysql -u 用户名 -p 然后输入密码,此时登录成功 第二步:创建用户用来远程连接,运行如下命令: G ...