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() ),