Django博客搭建_用户注册3_手机号校验

Blog项目——用户注册


本文接上文

八、 手机号校验

1. 分析

请求方法:GET

url定义/mobiles/(?P<mobile>1[3-9]\d{9})

请求参数:url路径参数

参数类型是否必传描述
mobiles数字用户输入

2. 测试

手机号校验的方法与用户名校验类似,先说一下简单思路:

  1. 用户在前台输入手机号,然后焦点移出手机输入框后(js的blur事件)
  2. js通过jquery获取这手机号,然后进行简单校验
    1. 是否为空
    2. 是否符合手机格式
  3. 如果上面都通过,则利用ajax往后台发数据,
    1. 拼接url
    2. 设置参数
    3. 发送数据
  4. 等待返回值data
    1. 如果data里的count不为0,则说明手机号已存在
    2. 如果data里的count为0,则说明这个手机号可以正常使用
  5. 将返回结果通过alter通知用户

同样的,我们从路由出发:

verifitications/views.py

# 手机号校验
class MobileView(View):
	def get(self, request, mobile):
		data = {
			"mobile": mobile,
			"count": Users.objects.filter(mobile=mobile).count()
		}
		return to_json_data(data=data)

verifitications/urls.py路由也是使用正则匹配

re_path(r"mobiles/(?P<mobile>1[3-9]\d{9})", views.MobileView.as_view(),name="mobile"),

最后,我们查看一下js部分:

$mobile.blur(function () {
    fn_check_mobile()
});

// check the mobile whether register
function fn_check_mobile() {
    let $sMobile = $mobile.val() // get data

    // check mobile whether null
    if ($sMobile === ""){
        message.showError("手机号不能为空");
        return;
    }

    // use re to check mobile
    if (!(/^1[3-9]\d{9}$/).test($sMobile)){
        message.showError("手机号格式错误,请重新输入")
        return;
    }

    // send sjax
    $.ajax({
        url: "/mobiles/" + $sMobile + "/",
        type: "GET",
        dataType: "json"
    }).done(function (res) {
        if(res.data.count !== 0){
            message.showError("手机号已注册,请重新输入")
        }else{
            message.showSuccess("手机号可以正常使用")
        }
    }).fail(function () {
        message.showError("服务器超时,请重试!")
    })
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值