电商项目 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 协议》,转载必须注明作者和本文链接
推荐文章: