电商逻辑初步整理

版权声明:欢迎读阅 https://blog.csdn.net/weixin_44266137/article/details/87868342

年也过完了、整理了一些小小的干货。
简单了解一下对于一些逻辑的初步分析,整理,会用到的内容

首先要分析客户需求,做电商网站我们需要哪些功能模块。

对设计数据库表、字段、属性分析。根据也无需求,追加字段,当然是上线前。
然后电商网站运用django框架,采用前后端不分离的方式,暂时没有用到Vue
拥有用户模块、订单模块、购物车模块、商品模块四个模块。

1.用户模块

注册

1.1显示注册页面

模板

1.2用户注册处理

注册的时候需要获取到用户名、密码、邮箱。校验为空就提示用户数据不完整。同时校验邮箱是否合法,如果不合法的话,提示用户邮箱不合法。
注册时用户输入的密码是明文,如果存在数据库是明文的话,数据不安全,所有用
from django.contrib.auth.hashers import make_password,check_password
对密码进行加密及校验

1.3发送邮件或手机短信验证

或者第三方登录,这块儿内容有些多,之后详细介绍。

1.4点击发送的激活链接

激活成功会跳转到登录页面,否则提示用户激活链接已经过期

1.5 注册时用户校验

如果存在就提示更换用户名,如果不存在,可进行注册。
返回给前端json数据,json数据返回存在就提示用户名已存在,反则就提示注册步骤。
在前端页面上编写前端的代码获取到用户名,发起异步提交请求,判断用户名是否存在,根据返回的json数据进行判断,存在的话,就显示用户名存在,让用户名的输入框为错误,否则输入框正确,但是这里就需要改成同步请求,判断完之后变为异步请求;(ajax,axios)

登陆

2.1显示登录页面

2.2登录处理

首先判断用户是否存在,获取到用户名、密码以及其他选项值,校验数据,从数据库中查找出用户名、密码一致的数据。
查询到用户数据,可提示是否记住用户名,如果需要记住用户名则设置保存(set_cookie)cookie信息,如果不记住则删除掉(delete_cookie)cookie的信息。
在这里还需要通过session信息保存用户未登录前的浏览纪录,用到一个保存用户刚才浏览信息的中间件,但有些浏览纪录不需要记录
(比如注册、退出、登录、还有ajax请求,get请求),其余纪录需要保存。如果没有需纪录则直接跳转首页,在这里还需要通过session记住用户名、用户ID、用户登录状态,否则提示用户名和密码不正确;

2.3验证登陆访问权限处理

有些页面需用户登录才能访问,我们定义一个用来判断用户是否登录的装饰器。
检测保存的用户是否为登录状态,如果是登陆状态则能够查看登录后的页面,反之返回到首页。
用户中心-地址页-用户ID,如果访问方式是get则显示地址页面,查询用户的默认地址,返回到用户的地址信息页面,否则就添加收货地址,获取到用户的用户名、地址、手机号码,校验数据是否完整,添加收货的地址,返回数据到地址页面或者显示用户个人中心的信息;

2.4用户中心的订单页

查询订单信息,获取用户ID,通过用户ID获取到所有订单信息,遍历算出每个订单商品的信息,从数据库中获取到商品数量及价格,计算出商品价格,保存订单中每一个商品信息。
动态给订单表添加属性,保存订单的商品的信息,把订单信息返回给前端页面,前端页面去通过后台返回的数据,对页面进行修改,这里需要把所有的订单给显示出来,所以要for循环遍历订单信息,但是这里需要注意订单信息是一个对象,而动态添加的属性也是一个对象;(转类型)

2.5用户中心的信息页

查询用户的浏览纪录,首先获取用户ID,通过ID在数据库中获取到用户基本信息,获取用户最近浏览纪录。(用户浏览记录也会在之后详细提到)

2.6 退出登录

清空用户信息,通过flush删除存在redis数据库中信息,跳转到首页。

商品模块

3.1首页

3.2商品模块分析

首页展示一般为高销量产品以及新品的展示,或者根据用户浏览记录,查找数据传给前端页面。

3.3详情页

  • 随机点开一个商品详情页面:

  • 获取商品的详细信息,判断商品是否存在,如果不存在则提示用户友好信息,反之获取商品图片。

  • 判断是否存在商品相关内容,比如有图片就取第一张,反之则返回空值。 商品的详情表有必要展示几个新品推荐,或者相关商品。

  • 所以在商品表查询出对应信息及相关信息

  • 简单记录用户浏览的记录,(当然要判断用户是否为登录状态),设置一个dict[key]键保存用户浏览纪录,用户有可能浏览同一个商品,保存用户最近浏览的几个商品。

  • 相似的取最近的

  • 把商品信息、列表、图片传给前端页面并渲染显示。 获取商品的价格和数量,库存等一些客户感兴趣的信息。

  • 点击加入购物车,触发click事件,存入用户信息中

3.4商品列表页面

  • 获取商品排序方式,如果没有排序方式则默认排序。
  • 判断商品种类ID是否在商品种类里,有则分页展示。
  • 分页使用django.core.paginator中的Paginator类
  • 对商品进行分类,
  • 也可以在这里获取到几个新品推荐,去数据库里面查询出种类id的新品,商品的标题可以通过商品的种类ID取到友好信息。

3.5搜索页面

搜索框需要进行搜索,

这里可以用到django内置的方法,也可以自己考虑简单的查询,展示出来就好

购物车模块

4.1点击商品页面加入购物车

  • 在购物车里添加数据,还是判断用户是否登录,提示用户登录,登录之后获取ID查询数据库,判断用户之前添加的商品是否存在,展示商品或无商品
  • 将商品添加到购物车,如果之前有此商品就对数目加1,如果无此商品则添加数据
  • 还有添加数量的限制,如果大于库存,提示用户库存不足,再进行前端修改,触发一个click事件

4.2显示购物车页面

  • 购物车信息,获取商品ID以及数量,通过ID去查询数据库中商品信息,保存商品数目。
  • 通过商品数目和商品价格,算出商品的总数量及总价格,计算出商品总计、小计,最后进行展示。
  • 判断是否是全选,获取所有被选中的商品,计算小计和总价数量,设置商品的总价和总数目。
  • 获取用户购物车商品数目,计算用户购物车商品数量
  • 更新购物车商品数目,

4.3删除购物车商品信息

  • 判断商品是否被选中的状态,如果选中的话,就更新商品的总数目及总价

订单模块

5.1显示提交订单页面

  • 判断数据能收到,如果收不到则跳转到购物车页面
  • 获取用户ID,在数据库里查询地址信息,用户要购买的商品,计算商品数量计算商品小计,动态更新商品信息,添加小计和数量这两个属性
  • 将用户购买信息存储,计算商品的运费和实付款,将获得数据传给前端并展示。

5.2提交订单信息

之后详细说,这块的总结还在酝酿中···

开发中用到 Django 2.0.4版本
不喜轻喷。总结还在草稿中···

猜你喜欢

转载自blog.csdn.net/weixin_44266137/article/details/87868342