当前位置: 首页 > news >正文

第12次06 :用户中心添加邮箱

第一步:定义用于保存邮箱信息的视图,由于需要用户登录之后才能添加邮箱,所以在前后端交互时要先进行用户登录状态的验证(因会过期),数据交互使用json。

在xiaoyumall/utils下创建views.py,并定义限制用户访问类LoginRequiredJSONMixin

from django.contrib.auth.mixins import LoginRequiredMixin
from xiaoyu_mall.utils.response_code import RETCODE
from django.http import JsonResponseclass LoginRequiredJSONMixin(LoginRequiredMixin):"""自定义判断用户是否登录的扩展类:返回JSON"""# 'ensure_ascii': False  错误信息以中文形式显示def handle_no_permission(self):resp_json = {'code': RETCODE.SESSIONERR, 'errmsg': '用户未登录'}print(resp_json)return JsonResponse(resp_json, json_dumps_params={'ensure_ascii': False})

继承这个类即可实现登录状态的验证。

import jsonfrom xiaoyu_mall.utils.views import LoginRequiredJSONMixinlogger = logging.getLogger('django')class EmailView(LoginRequiredJSONMixin, View):"""添加邮箱"""def put(self, request):"""实现添加邮箱逻辑"""# 接收参数 body, 类型是bytes类型json_str = request.body.decode()json_dict = json.loads(json_str)email = json_dict.get('email')# print(email)if not email:  # 校验参数return HttpResponseForbidden('缺少email参数')if not re.match(r'^[a-z0-9][\w\\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email):return HttpResponseForbidden('参数email有误')# 赋值email字段try:request.user.email = emailrequest.user.save()except Exception as e:logger.error(e)return JsonResponse({'code': RETCODE.DBERR, 'errmsg': '添加邮箱失败'})# 响应添加邮箱结果# 响应添加邮箱结果return JsonResponse({'code': RETCODE.OK, 'errmsg': '添加邮箱成功'})

第二步:定义路由

path('emails/', views.EmailView.as_view()),

第三步:调整session时长,验证。

相关文章:

  • 算法题(156):雷达探测
  • 【低代码平台】数据交换格式:JSON vs. Protobuf 协议对比
  • 【某数WAF 动态Cookie实战】
  • MyBatis 动态 SQL 详解:灵活构建强大查询
  • git基础语法回顾
  • .NET 8使用AOT发布ASP.NET Core应用
  • 【算法深练】双序列双指针:用“双轨并行”思维,高效破解算法难题
  • Unity中partial的作用
  • python33天打卡
  • vscode java debug terminal 中文乱码
  • Veeam Backup 13 beta ui 方式备份 VMware esxi 虚拟机
  • 《软件工程》第 8 章 - 人机交互设计
  • 【监控】PromQL 查询语言
  • 什么是时空学习(Spatiotemporal Learning)
  • linux文件权限管理
  • React与Vue的内置指令对比
  • 原生小程序与 UniApp 中传递循环数据(整个对象)的对比与实现
  • Haproxy编译安装
  • 大模型量化原理
  • 什么场景下能够用到根据id批量查询用户
  • wordpress 安卓手机写/淄博搜索引擎优化
  • 做采集网站赚钱吗/最经典最常用的网站推广方式
  • wap手机商城网站源码/抖音关键词优化排名靠前
  • 将html嵌入wordpress/天津seo关键词排名优化
  • 自我介绍ppt模板免费下载/seo的收费标准
  • 网站建设的7种流程/怎么做一个属于自己的网站