Django框架-美多商城项目_荒城以北的博客-程序员ITS203_django美多商城源码

技术标签: 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加密

公钥

私钥

数字签名

部署

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44090435/article/details/86438342

智能推荐

CSS实现图片居中且缩放不影响图片纵横比_Einstellung的博客-程序员ITS203_css 居中缩放

实现代码我们在编写页面代码的时候往往会需要添加图片。在使用过程中,获取的图片尺寸经常可能和页面需要的尺寸不一致,这时候就需要对获取图片进行缩放。对图片缩放有一定技巧,或者说是固定的编写代码套路。否则可能稍有不慎,就会导致图片被拉伸,失去原有纵横比。下面代码展示了一种保持图片纵横比缩放图片的套路。建议首先看一下这篇文章,使得基线位置和中线位置保持一致:图片垂直居中下面是代码:<!DOCTYPE html><html> <head> &lt

sql:无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_Taiwan_Stroke_CI_AS" 之间的排序规则冲突。_geovindu的博客-程序员ITS203

--无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_Taiwan_Stroke_CI_AS" 之间的排序规则冲突。 CREATE VIEW View_VipBranchStaffBranchList ASselect VipBranchStaff.*,geovindu_branch.B_Name,VipExamCountry.ExamCoun

算法笔记 PAT B1023组个最小数_关切得大神的博客-程序员ITS203_pat b 1023

就不放原题,直接给自己的思路和代码啦**思路:我其实能想到最简便的方法就是,创建一个char型的数组,然后对数组进行排序,从小到大,然后输出第一个不为0的数,然后再依次输出好吧,由于自己没读题的缘故,发现问题在于输入这部分,那就创建一个数组,数组的位置就是对应的值,数组里的内容就是对应值的数量 **#include<stdio.h>#include<string.h>...

Activiti 工作流引擎 详解_activiti工作流_Modify_QmQ的博客-程序员ITS203

工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。

hadoop之HDFS:通过Java API访问HDFS_尘埃zza的博客-程序员ITS203_hadoop bin directory does not exist: d:\study\4.ha

HDFS是一个分布式文件系统,可以通过Java API接口对HDFS进行操作,下面记录实现Java API的过程和出现的一些问题及解决方案环境搭建导入jar包#common包中的jar文件导入hadoop-2.8.1\share\hadoop\common\lib\*.jarhadoop-2.8.1\share\hadoop\common\hadoop-common-2.8.1.jar#客户端需

随便推点

Spring2.5学习笔记_aspnetandjava的博客-程序员ITS203

一、什么是Spring:Spring是一个开源的控制反转(Inversion of  Control , Ioc)和面向切面(AOP)的容器框架,他的主要目得是简化企业开发。v 控制反转:所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的,这样控制权就由应用转移到外部容器,控制权的转移就是所谓的控制反转。v 依赖注入:所谓的依赖注入

mamp安装php扩展,mac版mamp下php安装pcntl扩展_cryptogram的土豆的博客-程序员ITS203

mac版mamp下php安装pcntl扩展(2016-09-09 16:29:49)标签:it[掘金]是一个高质量的技术社区,从 Swift 到 ReactNative,性能优化到开源类库,让你不错过互联网开发的每一个技术干货。点击链接或者各大应用市场搜索「掘金」,技术干货尽在掌握中。MAMP Pro是一款适用于Mac操作系统的软件,MAMP PRO是专业级版本的经典本地服务器环境的osx软件。M...

【转】利用泰勒公式推导梯度下降法_我的灯还亮着的博客-程序员ITS203_一阶泰勒展开和梯度下降法

原作者: 红色石头|来自: AI有道梯度下降算法的公式非常简单,”沿着梯度的反方向(坡度最陡)“是我们日常经验得到的,其本质的原因到底是什么呢?为什么局部下降最快的方向就是梯度的负方向呢?也许很多朋友还不太清楚。没关系,接下来...

jeesite 单选 多选下拉框 回显效果实现_Sen_mitsuji的博客-程序员ITS203_jeesite右上角下拉框选择角色实现

jeesite 非字典下拉多选框回显效果使用背景单选下拉框动态下拉列表生成及数据回显欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UM...

Module Error (from ./node_modules/eslint-loader/index.js):解决办法_自由yang的博客-程序员ITS203

因为使用了eslint,需要在package.json文件里面加上 "rules":{ "generator-star-spacing": "off", "no-tabs":"off", "no-unused-vars":"off", "no-console":"off", "no-irregular-whitespace":"off", "no-debugger": "off" } 可以试试保存后关闭代码编辑器,重新打开去运行看看问题解决了没,有时候只是编辑器的事...

kubectl 常用命令详解_老骥又出发的博客-程序员ITS203

kubectl常用示例查看类命令 1 # 获取节点和服务版本信息 2 kubectl get nodes 3 # 获取节点和服务版本信息,并查看附加信息 4 kubectl get nodes -o wide 5 6 # 获取pod信息,默认是default名称空间 7 kubectl get pod 8 # 获取pod信息,默认是default名称空间,并查看附加信息【如:pod的IP及在哪个节点运行】 9 kubectl get pod -o wide10 # 获取指.

推荐文章

热门文章

相关标签