django短信验证码

本文介绍了在Django中设置短信验证码的步骤,包括在 migrations 中创建 serializers.py,views.py 和 urls.py 的代码实现,以及如何通过 Postman 测试获取验证码的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在verify/migrations 新建一个serlalizers.py

from rest_framework import serializers
from django_redis import get_redis_connection
class MsgCodeSerializer(serializers.Serializer):
    imagecode_id = serializers.UUIDField()
    image_string = serializers.CharField(max_length=4,min_length=4)

    def validate(self, data):

        print(data)
        imgcode_id = data['imagecode_id']
        image_string = data['image_string']

        con = get_redis_connection()
        true_string = con.get(imgcode_id)
        print('true',true_string)


        if not true_string:
            raise serializers.ValidationError('imagecode error')

        if image_string == true_string:
            print('ojbk')

        if not true_string:
            raise serializers.ValidationError('验证码错误')

        if image_string != true_string.decode():
            raise serializers.ValidationError('验证未通过')

            # print('验证通过')
        return data

在verify/views.py中写入:

class MsgCodeView(APIView):

    serializer = MsgCodeSerializer()

    def get(self,request,phone):
        # request.GET
        # 校验参数
        a = request.query_params
        ser = MsgCodeSerializer(data=request.query_params)
        ser.is_valid(raise_exception=True)

        # 生成短信验证码
        meg_number=random.randint(100000,999999)

        # 保存短信验证码
        # 发送短信验证码
        ccp = CCP()
        # 注意: 测试的短信模板编号为1
        A1 = ccp.send_template_sms( '18233533816', ['5555', 1], 1 )
        # 发送短信
        print(A1)
        #
        return HttpResponse('ok')

在verify/urls.py中写入:

 url(r'^meg_code/(\d+)/',views.MsgCodeView.as_view())

导入yuntongxun
启动服务器:

(huanjing1) python@ubuntu:~/Desktop/new_project/shanghui$ live-server

进入注册界面:http://127.0.0.1:39170/register.html
复制验证码地址:http://127.0.0.1:7000/pic_code/3e6453fa-d0c1-470a-afef-6f012a85c6ee/
打开postman,选择get请求:
http://127.0.0.1:8000/meg_code/1234567?imagecode_id=3e6453fa-d0c1-470a-afef-6f012a85c6ee&image_string=8,点击发送,收到验证码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值