网上书城项目描述(本人原创&可以借鉴经验,但请勿抄袭)

您所在的位置:网站首页 网上书店介绍 网上书城项目描述(本人原创&可以借鉴经验,但请勿抄袭)

网上书城项目描述(本人原创&可以借鉴经验,但请勿抄袭)

2024-07-16 23:07:03| 来源: 网络整理| 查看: 265

网上书城项目描述 一.项目概述&架构 1.项目概述

最近参与了一个网上书城的项目开发,它是一个B2C模式的电商网站,我们在开发过程中采用了前后端分离的开发模式,前端采用了vue框架,后端采用了DRF框架

2.项目模块&功能 1)项目模块(四个部分) 1234用户部分商品部分购物车部分订单部分 2)购物车部分功能 id功能1购物车记录增删改查2购物车记录的全选3购物车记录的合并 3)使用技术点 id技术点1购物车记录存储2购物车记录合并 二.项目具体内容 1)项目需求

用户可以在看到喜欢的书籍时进行添加购物车操作,将喜欢的书添加到我的购物车中,并可以进行在购物车的购买操作

2)项目优化(两次优化)

后来根据项目经理要求,为了增加用户的更好使用购物车体验, 1.添加了本地未登陆状态下也可添加购物车的功能, 2.并可以在用户登录的时候将本地购物车记录添加和登陆用户账号中购物车的记录进行合并

3)功能实现 1.购物车记录的存储方案设计 1.已登录

登陆用户的购物车存储在redis中 (原因:1.为了避免用户频繁操作购物车,造成因放在mysql数据库使得服务器频繁进行数据库增删改查压力过大的情况; 2.使用redis查询也更加快)

存储内容: hash数据类型存储购物车中添加的图书id和对应的图书数量 (因为每个用户要保存多个图书的id和数量的对应关系)

set(集合)数据类型记录用户勾选的书籍id (因为只需保存勾选的图书id,不需要保存顺序)

2.未登录

未登录用户的购物车记录存储在客户端 (为了避免过多的占用服务器存储空间)

存储在本地cookie中 记录添加的图书id和对应的数量,以及图书的勾选状态

使用pickle与base64模块 因为cookie只能保存字符串数据,于是采用了先使用pickle模块将字典数据先转换为bytes字节流,再使用base64模块将bytes字节流进行base64编码成bytes内容,最后进行decode解码成字符串类型,存储在cookie中,返回来解析cookie中数据亦然。

2.购物车记录的合并方案设计 1.需求

当用户登录时,可以将用户客户端未登陆时存储在本地的购物车记录与用户账号上的购物车记录进行合并,并当发生冲突时,以本地购物车记录为主

2.方案:封装合并记录的函数,并在登陆视图中进行调用

合并不是新的API接口,而是封装一个函数,在原有登陆流程上进行调用合并方法,补充购物车合并的过程。

封装 (取出cookie中数据,存储到redis中,并删除cookie中的记录)

2.调用 1)在普通登陆中添加调用 (重写认证中的post视图,在返回响应之前直接添加) (我查看了认证的源码,发现rest_framework_jwt提供的obtain_jwt_token视图,实际从rest_framework_jwt.views.ObtainJSONWebToken类视图而来,所以就重写了认证视图,继承ObtainJSONWebToken,重写了post方法,并在其中添加了对合并购物车记录方法的调用)

2)在QQ登陆中添加调用 a. 如果是绑定过的用户,在登陆QQ登陆直接生成jwt token返回之前添加对合并函数的调用

b.对于未绑定过的用户, 重写post方法,增加了调用合并购物车记录的函数

4)开发过程中遇到的问题

1.问题: 在进行购物车增加的接口调试中,发现请求不成功,报错信息401,

2.查询: 后来经过查询资料,发现是jwt token认证机制的问题,当浏览器访问访问的时候,会向后端传一个jwt token,但是当用户没有登陆的情况下,传的值为空,而后端只要发现请求,就会校验jwt token的有效性,当发现无效时,就会返回401未认证。

3.解决: 重写认证方法,让登录视图跳过DRF框架认证过程, 并在获取user时,try一下,使其不返回异常,而是user为空

4)增删改查

注意: 在进行增删改查时都要进行用户是否登陆的判断,然后进行不同的操作



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭