django注册入库正则验证手机和邮箱
1.数据库库表设计
models.py下
#基类 class Base(models.Model): #创建时间 create_time = models.DateTimeField(default=timezone.now,null=True) class Meta: abstract = True #用户 class User(Base):#继承基类 id = models.AutoField(primary_key=True) username = models.CharField(max_length=100)#用户名 password = models.CharField(max_length=200)#密码 phone = models.CharField(max_length=15)#手机号 emali = models.CharField(max_length=50)#邮箱 class Meta: db_table = "my_user"
第一步记得迁移数据库
2.views.py下
from myapp.models import User#导入models包 from django.utils.deprecation import MiddlewareMixin #用户注册 class Register(APIView): def post(self,request): #接受数据 username = request.POST.get("username",None) password = request.POST.get('password') phone = request.POST.get('phone') emali = request.POST.get('emali') #手机号正则验证 try: re.match(r"^1[35678]\d{9}$", phone) except Exception as e: return Response({'message': '手机号不符合规则'}) #邮箱正则验证 my_emali = re.findall(r'^[0-9a-zA-Z_]{0,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{2,3}$', emali) if not my_emali: return Response({'message':'邮箱不正确'}) #唯一性验证 try: user = User(username=username,password=password,phone=phone,emali=emali) user.save() return Response({'message':'注册成功'}) except Exception as e: print(e) return Response({'message': '注册失败'})
3.自定义接口
urls.py下
from myapp.views import Register urlpatterns = [ path('register/', Register.as_view()) ]
4.前端代码
vue写的前端
<template>
<div>
<center><h1>这是·注册页面</h1></center>
<a-form-item label="用户名" v-bind="formlayout">
<a-input v-model="username"/>
</a-form-item >
<a-form-item label="密码" v-bind="formlayout">
<a-input v-model="password"/>
</a-form-item >
<a-form-item label="确认密码" v-bind="formlayout">
<a-input v-model="password1"/>
</a-form-item >
<a-form-item label="手机号" v-bind="formlayout">
<a-input v-model="phone"/>
</a-form-item >
<a-form-item label="邮箱" v-bind="formlayout">
<a-input v-model="emali"/>
</a-form-item >
<a-form-item v-bind="buttonlayout" >
<a-button type="primary" @click="submit">注册</a-button>
</a-form-item>
</div>
</template>
<script type="text/javascript">
export default {
data(){
return{
username:'',
password:"",
password1:"",
phone:"",
emali:"",
// 表单样式
formlayout:{
//标签
labelCol:{
xs:{span:24},
sm:{span:8}
},
// 文本框
wrapperCol:{
xs:{span:24},
sm:{span:16}
}
},
// 按钮样式
buttonlayout:{
//标签
wrapperCol:{
xs:{
span:24,
offset:0
},
sm:{span:16,offset:8}
},
}
}
},methods:{
submit(){
// alert('注册成功')
if (this.password ===this.password1){
this.axios.post('http://127.0.0.1:8000/register/',this.qs.stringify({
username:this.username,
password: this.password,
phone: this.phone,
emali: this.emali,
})).then(res=>{
console.log(res.data)
this.$message.info(res.data.message)
})
}
else {
this.$message.info('密码不一样')
}
}
},created() {
}
}
</script>
1
浙公网安备 33010602011771号