概述
一、注册
1.1 用户名的验证
class Check(APIView):
def get(self,request,username):
if not re.findall(r'^[a-zA-Z]w{4,15}$',username):
return Response({'code': 404,'msg': '用户格式不正确'})
if User.objects.filter(username=username):
return Response({'code': 400,'msg': '用户名重复'})
else:
return Response({'code': 200,'msg': '完成'})
1.2 手机号的验证
class CheckMobile(APIView):
def get(self, request, mobile):
if not re.findall(r"^1[3-9]d{9}$", mobile):
return Response({"code":404, 'msg':"手机号格式不正确"})
num = User.objects.filter(mobile=mobile).count()
if num == 0:
return Response({"code":200, 'msg': 'OK'})
else:
return Response({"code":400, 'msg': '手机号重复'})
1.3 图片验证码
import string
from captcha.image import ImageCaptcha //导入对象
class Imgcode(APIView):
def get(self,request,uuid):
code= ''.join(random.sample(string.ascii_letters + string.digits, 4))
print(code)
cap = ImageCaptcha()
img_code = cap.generate(code)
r= redis.Redis(host='localhost',port=6379,db=0)
r.set(uuid,code,ex=120)
r.close()
return HttpResponse(img_code,content_type='image/png')
1.4 效验验证码
class Imgcode2(APIView):
def get(self,request):
uuid = request.query_params.get('imageCodeID')
img_code = request.query_params.get('imageCode') //前端传来的参数
r = redis.Redis(host='localhost', port=6379, db=0) // 导入redis数据库
r_code = r.get(uuid)
if not r_code: // 判断redis数据库中是否有验证码
return Response({'code': 204,'msg': '验证码过期'})
print(img_code)
print(r_code)
if img_code.lower() == r_code.decode().lower(): //判断验证码 decode():解码
return Response({'code': 200,'msg': '完成'})
else:
return Response({'code': 404, 'msg': '验证码错误'})
1.5 注册用户
class Register(APIView):
def post(self,request):
username = request.data.get('userName')
pwd = request.data.get('pwd')
mobile = request.data.get('mobile')
aggree = request.data.get('agree')
if not all([username,pwd,mobile]): //判断所有信息是否完整
return Response({'code': 204, 'msg': '注册信息不完整'})
if not aggree:
return Response({'code': 204, 'msg': '未同意用户使用协议'})
// 将数据添加到数据库中,形成用户
User.objects.create_user(username=username,password=pwd,mobile=mobile)
return Response({'code': 200, 'msg': '注册成功'})
2 后端路由
from django.urls import path
from . import views
urlpatterns = [
path('check/username/<str:username>/',views.Check.as_view()),
path('check/mobile/<str:mobile>/', views.CheckMobile.as_view()),
path('image_code/<str:uuid>/',views.Imgcode.as_view()),
path('check_image_code/',views.Imgcode2.as_view()),
path('register/',views.Register.as_view())
]
3 总结
看不如写,写一遍比看十次效果还要好
最后
以上就是飘逸小蚂蚁为你收集整理的商城的注册(后端)一、注册的全部内容,希望文章能够帮你解决商城的注册(后端)一、注册所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复