电商项目 2020-12-01~2020-12-11

2020-12-11 工作内容

完成收货地址逻辑分析与实现

1.展示缓存省市区信息

  • 省市区三级联动交互

    核心是在一张表上存储省市县信息,采用自关联查询数据

    • 准备省市区信息模型和用户地址模型
      使用vue局部更新省市县数据,页面加载时候,异步加载省信息,省ID变化时,查询市信息,市ID变化,查询区/县信息
    • 缓存省市县信息,因为数据相对来说,基本没有变化,所以缓存提高运行速度
      使用Django自带的cache模块,很简单实现

2.新增地址后端逻辑

  • 设计接口和定义(只允许登陆用户)
  • 定义用户地址模型,操作用户地址数据,并给用户类模型添加默认地址字段
  • 逻辑实现
  • 接受json数据,组织并响应json数据

3.展示地址后端逻辑

  • 接口设计和定义
  • 查询所有用户地址信息并返回。

4.修改地址后端逻辑

  • 接口设计和定义
  • 查询地址并更新

5.删除地址后端逻辑

  • 接口设计和定义:进行逻辑删除,设计is_deleted字段,伪删除
  • 查询地址,并伪删除

6.设置默认地址和修改地址标题后端逻辑

  • 接口设计和定义:
  • 查询地址,并进行设置默认地址和修改地址标题

总结

  1. 对于Vue的用法还是不熟悉,修改前端页面时候,总是进度很慢

  2. 今天对于一个BUG,因为序列化json数据时候,写错一个单词,排查了一个小时,真是粗心大意不得。

    2020-12-05 工作内容

    完成用户中心信息渲染和邮箱验证

  3. 用户中心逻辑分析

  • 分析用户基本信息逻辑

    核心是在用户模型中添加email_active字段,来确认是否激活

    • 查询并渲染用户基本信息
      可以直接用request.user中获取登陆用户信息,使用登陆验证,保证有登陆用户信息

2.用户中心前端逻辑

  • 从后端接受用户信息,传递到vue.js中,并进行渲染,这样格式代码方便统一
  • 前端校验邮箱格式
  • 前端向后端对应接口发送请求,给用户邮箱发送确认邮件
  • 根据邮件激活状态,选择呈现信息

3.后端逻辑

  • 修改用户模型:增添email_active字段,并迁移
  • 配置Django发送邮件配置
  • 发送邮箱验证邮件:使用celery异步发送邮件,提高响应速度

    celery设置重试机制

  • 生成邮箱确认连接:使用itsdangerous实现签名,并设置过期时间
  • 邮箱确定连接验证:使用itsdangerous提取用户信息,并验证

总结

  1. 对于celery的一些高级用法,不是很熟悉,需要多加强学习,比如celery的工作模式有哪些等等。

  2. 第三方登陆,基本都是类似QQ登陆的,以后可以根据情况,添加各种第三方登陆

    2020-12-04 工作内容

    完成第三方QQ登陆

  3. 阅读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.无绑定情况,如果用户存在,直接关联,不存在,则创建并关联

总结

  1. QQ开发文档要仔细观看,细节都在里面了。

  2. 第三方登陆,基本都是类似QQ登陆的,以后可以根据情况,添加各种第三方登陆

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

找到编程的灵魂伴侣了?

3年前 评论
tomcatdog (楼主) 3年前

忙吗

3年前 评论
tomcatdog (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!