Django项目之电商购物商城 – 添加邮箱
一. 用户中心
添加邮箱功能在用户中心中 , 先完善用户中心功能
1. 视图
# 用户中心
class UserInfoCenterView(LoginRequiredMixin,View):def get(self , request):context = {'username' : request.user.username,'mobile' : request.user.mobile,'email' : request.user.email,}return render(request , 'user_center_info.html' ,context)
2. 路由
# 用户中心path('user_info_center/' , views.UserInfoCenterView.as_view() , name = "user_center"),
二. 添加邮箱
保存邮箱是通过发送put请求 , url为email
1.创建新的视图用于获取email , 以及保存
改写LoginRequiredMixin – 其返回对象为HttpResponse类型 , 无法返回JsonResponse
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
from utils.response_code import RETCODEclass LoginRequiredMixinJosn(LoginRequiredMixin):def handle_no_permission(self):return JsonResponse({'code':RETCODE.SESSIONERR,'errmsg':"用户未登录"})
创建email视图
class EmailView(LoginRequiredMixinJosn,View):def put(self , request):#put请求的信息保存在body中email_json = json.loads(request.body.decode())email = email_json.get('email')print(email)# 校验数据if not re.match(r'^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$',email):return HttpResponseForbidden("邮箱参数有误")# 保存邮箱request.user.email = email_jsonrequest.user.save()return HttpResponse({'code':RETCODE.OK,'errmsg' :'OK'})
创建路由
# 邮箱保存path('email/' , views.EmailView.as_view() ),