Django框架-美多商城项目

后续技术类文档更新到微信公众号-------->>喜欢的扫码关注


美多商城

项目准备

登录模块

注册

用户模型 AbstractUser

图片验证码

第三方工具包

Redis

UUID

验证码内容

子主题 3

短信验证码

云通讯

Celery

任务队列 broker

Redis

处理器 worker

跨机部署

delay方法发送异步任务

celery -A celery_tasks.main worker -l info

Redis

手机号作为key

短信验证码内容

图片验证码必须正确

标记flag, Redis, 60s

注册

注册成功的返回值

username, user_id, token

JWT, Token

组成: header.payload,signature

生成登录token的方式

itsdangerous生成自定义token

登录

传统登录

obtain_jwt_token能够直接实现登录逻辑

自定制返回值

支持手机号和用户名登录

QQ登录

  1. 调用接口,获取qq登录的网址

  2. 用户进行扫码登录

  3. 跳到回调地址页, 带个code参数

  4. 调接口, code传给服务器, 服务器使用code换openid

  5. 查询openid是否已经绑定

未绑定

access_token

已绑定

返回token

  1. 未绑定, 提交表单, 执行绑定操作

用户中心

展示用户基本信息

request.user

permission_classes = [IsAuthenticated]

保存邮箱并发送激活链接

User, email_active

发邮件

163邮箱

from django.core.mail import send_mail

Celery

生成激活链接

access_token, user, email

用户点击激活链接,完成激活

校验access_token

修改email_active

收获地址管理

ViewSet

省市区三级联动

缓存

CacheResponseMixin

商品部分

表设计

2张广告表

9张商品表

SPU, SKU

FastDFS

tracker

storage

自定义文件存储系统

admin, 富文本编辑器, CKEditor

docker

镜像

容器

页面静态化

首页静态化

  1. 从数据库查询数据

  2. 渲染模板

  3. 写入文件

详情页静态化

时机

首页, 每个5分钟

定时任务 Crontab

详情页, 数据发生改变

监听admin保存操作

Celery

脚本文件

浏览历史记录

Redis

list, sku_id

商品列表页

分页

DRF自带分页功能

排序

DRF自带OrderFilter

商品搜索

ElasticSearch

索引

haystack

定义索引类

复合字段text

调用命令生成索引

序列化器

视图集

购物车

已登录

Redis

hash

sku_id, count

set

已经被勾选的sku_id

未登录

Cookie

dict–>str

pickle, dict–>0101001

base64, 0101001–>b’str’

如何判断是否已登录?

request.user

增删改查, 全选

合并购物车

时机

传统登录

QQ登录

订单

订单结算

保存订单

往订单表插入记录

往订单商品表插入记录

开启事务

并发问题解决

悲观锁

乐观锁

任务队列

支付

支付宝支付

  1. 获取支付宝的网址

  2. 用户进行支付

  3. 跳到回调地址页, 携带一大堆参数和签名

  4. 将参数传给服务器, 进行校验, 验签, 成功后更新数据库, 订单状态更新, 记录交易流水号

RSA加密

公钥

私钥

数字签名

部署

你可能感兴趣的:(Django框架)