发送短信-----用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 ...
随机推荐
- The property does not exist in XML namespace
自定义依赖属性,绑定在xaml文件中,无问题. 但是编译失败,报 The property does not exist in XML namespace 错误. 发现如果依赖属性定义在本程序集中,在 ...
- 小白学 Python 爬虫:Selenium 获取某大型电商网站商品信息
目标 先介绍下我们本篇文章的目标,如图: 本篇文章计划获取商品的一些基本信息,如名称.商店.价格.是否自营.图片路径等等. 准备 首先要确认自己本地已经安装好了 Selenium 包括 Chrome ...
- Python开发:变量类型
1.变量赋值 #!/usr/bin/python # -*- coding: UTF-8 -*- counter = 100 # 赋值整型变量 miles = 1000.0 # 浮点型 name = ...
- 如何查看NXP产品的供货计划?
大的半导体厂商一般会提供每个产品的生命周期计划,NXP的工业级IC一般供货10年,汽车级是15年,具体的时间可以在官网查询得到. 首先,打开NXP官网链接 产品长期供货计划,可以看到以下页面 接着,筛 ...
- Pytorch-Faster-RCNN 中的 MAP 实现 (解析imdb.py 和 pascal_voc.py)
---恢复内容开始--- MAP是衡量object dectection算法的重要criteria,然而一直没有仔细阅读相关代码,今天就好好看一下: 1. 测试test过程是由FRCN/tools/t ...
- iOS马甲包上架总结
https://www.jianshu.com/p/da0a259338ea iOS马甲包上架首先明白一点,这个上架的app马甲包一定是不合规的.不然也不会使用马甲包上架. 上架过程中遇到的坑. 因为 ...
- 一堂优秀学员吕智钊分享----HHR计划----直播课第二课
备注:本周四:创业者分享,下周四:投资人分享. 08年开始创业. 最重要的两条复盘思考: 大纲: ---坚持最低成本试错,最快速度学习---- 1,复盘1:创业早期如何快速学习 a,从竞争对手身上学习 ...
- select模块
select模块 1. select模块 源:select.py This module provides access to the select() and poll() functio ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定小文本
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...
- centos7中redis安装
官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux:或 wget http://d ...