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

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

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 叔。
奥秘就是,培养自己的兴趣,只要你爱,就冲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值