电商项目 2020-12-01~2020-12-11
2020-12-11 工作内容#
完成收货地址逻辑分析与实现#
1. 展示缓存省市区信息
- 省市区三级联动交互
核心是在一张表上存储省市县信息,采用自关联查询数据
- 准备省市区信息模型和用户地址模型
使用 vue 局部更新省市县数据,页面加载时候,异步加载省信息,省 ID 变化时,查询市信息,市 ID 变化,查询区 / 县信息 - 缓存省市县信息,因为数据相对来说,基本没有变化,所以缓存提高运行速度
使用 Django 自带的 cache 模块,很简单实现
- 准备省市区信息模型和用户地址模型
2. 新增地址后端逻辑
- 设计接口和定义 (只允许登陆用户)
- 定义用户地址模型,操作用户地址数据,并给用户类模型添加默认地址字段
- 逻辑实现
- 接受 json 数据,组织并响应 json 数据
3. 展示地址后端逻辑
- 接口设计和定义
- 查询所有用户地址信息并返回。
4. 修改地址后端逻辑
- 接口设计和定义
- 查询地址并更新
5. 删除地址后端逻辑
- 接口设计和定义:进行逻辑删除,设计 is_deleted 字段,伪删除
- 查询地址,并伪删除
6. 设置默认地址和修改地址标题后端逻辑
- 接口设计和定义:
- 查询地址,并进行设置默认地址和修改地址标题
总结#
对于 Vue 的用法还是不熟悉,修改前端页面时候,总是进度很慢
今天对于一个 BUG,因为序列化 json 数据时候,写错一个单词,排查了一个小时,真是粗心大意不得。
2020-12-05 工作内容#
完成用户中心信息渲染和邮箱验证#
用户中心逻辑分析
- 分析用户基本信息逻辑
核心是在用户模型中添加 email_active 字段,来确认是否激活
- 查询并渲染用户基本信息
可以直接用 request.user 中获取登陆用户信息,使用登陆验证,保证有登陆用户信息
- 查询并渲染用户基本信息
2. 用户中心前端逻辑
- 从后端接受用户信息,传递到 vue.js 中,并进行渲染,这样格式代码方便统一
- 前端校验邮箱格式
- 前端向后端对应接口发送请求,给用户邮箱发送确认邮件
- 根据邮件激活状态,选择呈现信息
3. 后端逻辑
- 修改用户模型:增添 email_active 字段,并迁移
- 配置 Django 发送邮件配置
- 发送邮箱验证邮件:使用 celery 异步发送邮件,提高响应速度
celery 设置重试机制
- 生成邮箱确认连接:使用 itsdangerous 实现签名,并设置过期时间
- 邮箱确定连接验证:使用 itsdangerous 提取用户信息,并验证
总结#
对于 celery 的一些高级用法,不是很熟悉,需要多加强学习,比如 celery 的工作模式有哪些等等。
第三方登陆,基本都是类似 QQ 登陆的,以后可以根据情况,添加各种第三方登陆
2020-12-04 工作内容#
完成第三方 QQ 登陆#
阅读 qq 开发文档
开发者申请
QQ 应用申请 : 需要域名通过备案
网站对接 QQ 登陆步骤:官方文档有详细
2. 实现 QQ 登陆
- 申请 APPID 和 AppKey
- 获取 authorization code:通过处理回调 URL 获得 code
- 通过 authorization code 获取 access_token
- 通过 access_token 获取 openID
可以通过条用 openapi 接口,获取修改 QQ 用户信息
3. 后端实现
- 定义 QQ 登陆类模型:将来用来判断用户是否绑定过商城用户,需要关联用户类 User
- 使用第三方 QQ 登陆工具:因为 QQ 没有 SDK,所以使用网上第三方工具包,QQLoginTool 来实现 QQ 登陆
- oauth2. 认证,获取 openID
- openID 是否绑定处理
1. 绑定情况:直接给用户保持状态,转回首页或者前一页
2. 无绑定情况,如果用户存在,直接关联,不存在,则创建并关联
总结#
QQ 开发文档要仔细观看,细节都在里面了。
第三方登陆,基本都是类似 QQ 登陆的,以后可以根据情况,添加各种第三方登陆
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: