Python web全栈开发_Django_billshop商城----用户中心-用户基本信息、添加邮件后端逻辑、判断用户登录并返回JSON、Django发送邮件的配置、异步发送邮件、验证邮箱后端逻辑

这篇博客介绍了在Django web全栈开发中,如何实现用户中心的邮箱验证功能,包括用户模型添加邮箱激活字段、后端逻辑实现、判断用户登录、Django邮件配置、异步发送邮件以及验证邮箱的后端逻辑。通过这些步骤,完成了用户中心的主体功能。

1. 用户中心-用户基本信息

用户基本信息逻辑分析
以下是要实现的后端逻辑
• 用户模型补充email_active字段
• 查询并渲染用户基本信息
• 添加邮箱
• 发送邮箱验证邮件
• 验证邮箱

查询并渲染用户基本信息
用户模型补充email_active字段
• 由于在渲染用户基本信息时,需要渲染用户邮箱验证的状态,所以需要给用户模型补充email_active字段
• 补充完字段后,需要进行迁移

users.models.py追加邮箱是否激活的字段,并迁移

email_active = models.BooleanField(default=False, verbose_name='邮箱验证状态')

在这里插入图片描述

查询用户基本信息
在这里插入图片描述
渲染用户基本信息
将后端模板数据传递到Vue.js
• 为了方便实现用户添加邮箱时的界面局部刷新
• 我们将后端提供的用户数据传入到user_center_info.js中
在这里插入图片描述
为了使前端保持一致,所以用了DTL 语法,将django中的值传给js,注意这种用法。

在这里插入图片描述

2. 添加邮箱后端逻辑实现

添加邮箱接口设计和定义
选项 方案
请求方法 PUT
请求地址 /email/

请求参数
参数名 类型 是否必传 说明
email string 是 邮箱

响应结果 JSON
字段 说明
code 状态码
errmsg 错误信息

3. 判断用户是否登录并返回JSON

在 utils 里新建一个views

在这里插入图片描述

在这里插入图片描述

4. Django发送邮件的配置

django不能发送邮件,要借
Django发送邮件流程分析

在这里插入图片描述
send_mall()方法介绍
• 位置:
• 在django.core.mail模块提供了send_mail()来发送邮件。
• 方法参数:
• send_mail(subject, message, from_email, recipient_list, html_message=None)
• 方法参数说明
• subject 邮件标题
• message 普通邮件正文,普通字符串
• from_email 发件人
• recipient_list 收件人列表
• html_message 多媒体邮件正文,可以是html字符串

准备发邮件服务器
1.点击进入《设置》界面
2. POP3/SMTP/IMAP,开启服务
3.设置授权码,记住设置的密码,Django中登录就是这个密码

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 指定邮件后端
EMAIL_HOST = 'smtp.163.com' # 发邮件主机
EMAIL_PORT = 25 # 发邮件端口
EMAIL_HOST_USER = 'xxx@163.com' # 授权的邮箱
EMAIL_HOST_PASSWORD = 'CULXTHBHSENNMPWG' # 邮箱授权时获得的密码,非注册登录密码
EMAIL_FROM = 'xxxx' # 发件人抬头

申请个163邮箱,欢迎大家发送邮件交流,哈!
在这里插入图片描述

开启这两个, 主要保留授权码,以后要用的。
在这里插入图片描述

EMAIL_HOST_PASSWORD 是开启的授权码,而不是注册登录密码,注意。
在这里插入图片描述

在这里插入图片描述

from django.conf import settings
目前为之可以静态发送邮件成功了。
在这里插入图片描述

5. 异步发送邮件

用celery 发送 email,
在celery_tasks 下新建 email 的package,然后在其下面新建tasks
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

from celery_tasks.email.tasks import send_verify_email

在这里插入图片描述
应该会报错,
django.core.exceptions.ImproperlyConfigured: Requested setting EMAIL_FROM, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
应该是授权码的问题。
在这里插入图片描述

因为celery和django 可以脱离, 它认不出配置。 所以去设置规则。
在这里插入图片描述

成功的异步发送见证:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6. 验证邮箱后端逻辑

相关py全部进行相应编写
在这里插入图片描述

至此, 用户中心主体功能全部完成。

此篇开启于前几天,因为忙,刚抽空写完,是下午KFC 里等娃娱乐时补充的后几段。20:16 又补充了一点内容, 现在准备搞昨天的MBA 课程—— 营销管理和财务管理、会计学的所有精华总结。 这个会更精彩,培养高管如何专业的看报表等以及决策的财务管理体系。

让天下没有难学的专业_bill 叔。
奥秘就是,培养自己的兴趣,只要你爱,就冲。

本项目是一个基于 Python 的汽车数据分析大屏可视化系统,旨在通过直观的可视化界面展示汽车相关数据,帮助用户更好地理解和分析汽车市场动态、车辆性能等信息。系统采用前后端分离的架构,前端使用 Vue 3 框架搭建用户界面,后端使用 Django 框架处理业务逻辑和数据存储,结合 Echart、DataV 等工具实现数据的动态刷新渲染和图表展示。### 2.2 前端架构前端使用 Vue 3 框架,结合 Vue-cli 进行项目构建和管理。Vue 3 具有响应式数据绑定、组件化开发等特性,能够提高开发效率和代码可维护性。同时,项目使用了 DataV 和 Echart 框架,DataV 提供了丰富的可视化组件,Echart 则用于创建各种类型的图表,如折线图、柱状图、饼图等。前端项目的主要文件结构如下:- `main.js`:主目录文件,引入 Echart、DataV 等文件。- `utils`:工具函数与 mixins 函数等。- `views/index.vue`:项目主结构。- `views/其余文件`:界面各个区域组件(按照位置来命名)。- `assets`:静态资源目录,放置 logo 与背景图片。- `assets/style.scss`:通用 CSS 文件,局项目快捷样式调节。- `assets/index.scss`:Index 界面的 CSS 文件。- `components/echart`:所有 echart 图表(按照位置来命名)。- `common/...`:局封装的 ECharts 和 flexible 插件代码(适配屏幕尺寸,可定制化修改)。### 2.3 后端架构后端使用 Django 框架,Django 是一个功能强大的 Python Web 框架,具有高效的数据库操作、路由管理、用户认证等功能。后端负责处理业务逻
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值