一、用户名校验
1.在相应视图中创建一个类视图,用于进行操作
from apps.user.models import Users
#校验注册用户名是否合法
class CheckUsernameView(View):
def get(self,request,username):
data={
'username':username,
'count':Users.objects.filter(username=username).count()
}
# print(data)
# return JsonResponse({'data':data})#将数据传送出去
return to_json_data(data=data);#将字典类型的数据转换成字符串输出
2.在前端的js中,先相应的代码来验证
$username.blur(function () {
fn_check_username()
});//调用相应函数
function fn_check_username() {
let sUsername = $username.val(); // 获取用户名字符串
if (sUsername === "") {
message.showError('用户名不能为空!');
return;
}
if (!(/^\w{5,20}$/).test(sUsername)) {
message.showError('请输入5-20个字符的用户名');
return;
}
//发送ajax请求,去后端查询用户名是否存在
$.ajax({
url: 'http://127.0.0.1:8000/verification/username/' + sUsername + '/',
//如果路径不对的话就把路径的全部写入,避免加载不出来
type: 'GET',
dataType: 'json',
})
.done(function (res) {
if (res.data.count !== 0) {
message.showError('用户名已注册,请重新输入!')
return
} else {
message.showSuccess('用户名可以正常使用!')
return
}
})
.fale(function () {
message.showError('服务器超时,请重试!');
return
})
}
3.在urls中配置路由
re_path('username/(?P<username>\w{5,20})/', views.CheckUsernameView.as_view(),
name='check_username'),
二、手机号码验证
1.在相应视图中创建一个类视图,用于进行操作
from apps.user.models import Users
#检验手机号是否合法
class CheckmoblieView(View):
def get(self,request,mobile):
data={
'mobile':mobile,
'count':Users.objects.filter(mobile=mobile).count()
}
print(data)
return to_json_data(data=data)
2.在前端的js中,先相应的代码来验证
// 判断手机号是否合法
function fn_check_mobiles() {
let smobile = $mobile.val()//获取手机号的值
if (smobile === '') {
message.showError('手机号为空,请重新输入');
return;
}
if (!(/^1[356789]\d{9}$/).test(smobile)) {
message.showError("手机号格式不对,请重新输入");
return;
}
$.ajax({
url: 'http://127.0.0.1:8000/verification/mobles/'+smobile+'/',
type: 'GET',
dataType: 'json',
})
.done(function (res) {
if (res.data.count !== 0) {
message.showError('手机号已注册,请重新输入');
return;
} else {
message.showSuccess('手机号可以使用');
return;
}
3.在urls中配置路由
re_path('mobles/(?P<mobile>1[3-9]\d{9})/',views.CheckmoblieView.as_view(),
name='mobile'),