发送短信-----用restful 校验规则
我们的需求如下
1. 获取手机号 2. 手机格式校验 3. 生成随机验证码 4. 验证码发送到手机上 5. 把验证码+手机号保留(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): ''' # 1. 获取手机号 phone = request.query_params.get('phone') # 2. 手机格式校验 # ① ''' 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': '手机号格式错误'})
# 3. 生成随机验证码 import random random_code = random.randint(1000, 9999) # 4. 验证码发送到手机上 购买服务器进行发送短信;阿里云/ 腾讯云 # todo tencent.send_message(phone,random_code) # 5. 把验证码+手机号保留(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=30)
4. 验证码发送到手机上 购买服务器进行发送短信;阿里云/ 腾讯云#
https://www.cnblogs.com/a438842265/p/12366196.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2018-02-24 python函数
2018-02-24 python函数-装饰器
2018-02-24 python函数-函数进阶
2018-02-24 python函数-函数初识
2018-02-24 python文件操作