八. Django项目之电商购物商城 -- 添加邮箱

简介: 八. Django项目之电商购物商城 -- 添加邮箱

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 RETCODE
class 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_json
        request.user.save()
        return HttpResponse({
            'code':RETCODE.OK,
            'errmsg' :'OK'
        })
创建路由
# 邮箱保存
    path('email/' , views.EmailView.as_view() ),


相关文章
|
1月前
|
前端开发 JavaScript 数据安全/隐私保护
计算机Python项目|django学生成绩管理系统
计算机Python项目|django学生成绩管理系统
|
5天前
|
ARouter 关系型数据库 MySQL
Django项目同时连接多个不同的数据库(7)
【7月更文挑战第7天】在Django项目中配置连接多个数据库,你需要: 1. 在`settings.py`中配置多个数据库, 2. 在`settings.py`内设置数据库路由,指定每个应用使用的数据库,
18 2
|
1月前
|
人工智能 关系型数据库 Docker
【Django项目】 通过AI实现视频转文字
【Django项目】 通过AI实现视频转文字
|
1月前
|
存储 前端开发 API
[译]Django项目最常用的20个包
[译]Django项目最常用的20个包
|
1月前
|
小程序 前端开发 JavaScript
计算机Python项目|django傣族节日及民间故事推广小程序
计算机Python项目|django傣族节日及民间故事推广小程序
|
19天前
|
前端开发 数据库 Python
Django入门全攻略:从零搭建你的第一个Web项目
Django入门全攻略:从零搭建你的第一个Web项目
|
28天前
|
前端开发 数据库 Python
Python Django项目下的分页和筛选查询
在Django中实现分页功能,视图函数通过`Paginator`处理数据,每页显示10条记录。URL配置支持带参数和不带参数的分页请求。前端模板使用for循环展示分页数据,包括商品信息和状态按钮,并利用分页组件导航。筛选查询视图根据GET请求的`state`参数过滤上架或下架产品,同样实现分页功能。前端添加状态选择下拉框,分页链接携带查询参数`state`确保筛选状态在翻页时保持。
|
1月前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
187 4
|
1月前
|
开发框架 数据库 开发者
Web开发新境界:用Python玩转Django和Flask!
【6月更文挑战第12天】Python的Web开发框架Django和Flask各有千秋。Django是全能型框架,适合快速开发大型应用,提供ORM、模板引擎、URL路由和后台管理等全面功能。Flask则轻量级且灵活,适用于小型到中型应用,以其简单易用、高度可扩展和灵活路由著称。两者结合使用,能应对各种Web开发需求。
|
28天前
|
存储 JavaScript 前端开发
Python Django下的实现注册验证码
摘要: 使用Python生成随机验证码图像,包括干扰线和噪点,保存到静态文件夹,并将验证码文本存储到数据库。数据库表包含ID、验证码图片路径和验证码文本。JavaScript函数`getRandomInt`生成1到300的随机数,用于请求对应数据库条目的验证码和图片。XMLHttpRequest发送POST请求到服务器,视图函数返回指定ID的验证码图片路径,实现验证码的动态刷新。