Django从零搭建电子产品销售系统(一)项目简介

电子产品销售系统

项目介绍

  • 此项目从零开始,基于python3.6,django-1.11,完成一个前后端分离的电子产品销售平台

技术分析

  • 架构分析

    • C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。

    • B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。

    • 电子产品销售平台采用 B/S 结构,目前而言,大部分系统都采用 B/S 结构,4G 甚至 5G的发展让流量越来越廉价,通过网页可以在各个地方访问到该系统,并且 B/S 结构开发者只需修改服务器上的 Web 代码即可完成修改,而 C/S 则需要打好补丁之后发送个用户再进行更新,在业务功能不甚复杂的情况下前者代价会比后者小很多。

    • 市场上大部分电商系统都是基于B/S结构的,并不需要维护客户端来进行操作,因此本系统也将采用B/S结构

  • 登陆验证方法大致分为三种,Cookies、Session、Token。

    • Cookies 译为饼干,此方法会在浏览器上存似小饼干样的东西,他会保存登录信息,下次进入页面时,若浏览器还有Cookies,即不需要登陆,虽然这样服务器并不需要过多处理,但浏览器的 Cookies 内容一旦被劫后,登陆信息就会被人利用;

    • Session 则不存在这样的问题,Session 会在登录成功后维持一个连接,在浏览器关闭时断开,优点在于相对安全,弊端为服务器负载压力较大。Token技术会在访问成功之后给前端返回Token,访问页面时验证Token即可验证登录信息,服务器需要维护一张 Token 表。

    • Json Web Token 服务器不需要维护 Token 表,JWT 分为三段:JWT 头、有效负载、签名,有效负载会存入登录信息,签名哈希会用指定算法生成签名,服务器只需验证签名就可返回登录信息,这样服务器相对压力较小,也相对安全。

    • 由于购物以及订单等需要用户先登陆操作,在一些操作之前需要对是否登陆进行校验。
      一般的登录验证都是通过 Cookie 或者 Session 来进行验证,而本系统采用 JWT,账号密码
      校验成功之后后台会返回前端一个 Token,前端将 Token 写入 Cookies 中,在请求数据之前
      传入 Token 值,服务器通过密钥验证 Token 是否合法,如果合法则可以进行操作,若不合法
      则无法操作。在用户希望退出系统时点击注销即可退出,此时系统也会对 Token 进行删除。

  • 短信验证

    • 在用户进行注册时,一般采用短信验证码或者图形验证码的方式防备恶意注册来对用户
      进行验证。本系统采用短信验证码的方式对用户输入手机号验证,目前成熟的短信业务厂家
      有不少:阿里、腾讯、Twilio 等,该系统通过前端获取到用户手机号传入后端接口中,后端
      访问 Twilio 接口,来进行短信验证支持。

功能分析

  • 系统登陆

    • 未登录的用户可以对商品进行浏览,对于购买加入购物车等操作则需要进行登录验证,
      登录成功之后登录状态需要传给前端进行处理,记录登陆状态,如果登录失败或者未登录就
      不能进行购买。
  • 系统注册

    • 该系统为面向所有用户的电子产品销售平台,因此开放对外注册,在注册时填写一些必
      要信息,为了防止恶意注册或者填写错误手机号,需要对手机进行发送验证码验证。
  • 消费者模块

    • 此模块即为网页前台,会通过商品类型对商品进行展示,对消费者而言,可以对商品进
      行浏览,查看商品详细信息,对评价进行浏览,可以将商品添加进入购物车,批量付款;用
      户通过个人管理页面,具有对个人信息进行修改,对收货地址进行修改,对密码进行修改,
      上传头像等操作
  • 管理员模块

    • 管理员页面即为网页后台,可以对商品进行管理,添加、更改、查询等操

数据库表结构分析

数据库表结构.png
  • 用户表

    • Django 为用户自动创建了一张表,如果不满足要求的话可以在这张表上扩展,自己用
      到以及扩展的字段有:id、username(账户)、password(密码)、last_name(用户名)、
      user_phone(用户手机号)、user_signature(用户签名),
  • 商品表

    • 商品表主要存储商品详细信息,其字段有:id、good_name(商品名称)、good_price(商品价格)、good_brand(商品品牌)、good_content(商品内容)、good_img(商品图片)、good_parameter(商品参数)、good_type(商品类型)、good_num(商品库存数量)
  • 购物车表

    • 商品购物车表主要有以下字段:id、favorite_detail(购物车备注)、good_id(商品
      id 关联商品)、user_id(用户 id 关联用户)、good_num(购物车数量)
  • 订单表

    • 订单表主要包括以下字段:id、order_address(订单地址)、good_num(订单数量)、
      good_id(商品 id 关联商品)、user_id(用户 id 关联用户),
  • 评论表

    • 评论表主要包括以下字段:id、comment_time(评论时间)、comment_content(评论内
      容)、good_id(商品 id 关联商品)、user_id(用户 id 关联用户)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容