电子产品销售系统
项目介绍
- 此项目从零开始,基于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 接口,来进行短信验证支持。
- 在用户进行注册时,一般采用短信验证码或者图形验证码的方式防备恶意注册来对用户
功能分析
-
系统登陆
- 未登录的用户可以对商品进行浏览,对于购买加入购物车等操作则需要进行登录验证,
登录成功之后登录状态需要传给前端进行处理,记录登陆状态,如果登录失败或者未登录就
不能进行购买。
- 未登录的用户可以对商品进行浏览,对于购买加入购物车等操作则需要进行登录验证,
-
系统注册
- 该系统为面向所有用户的电子产品销售平台,因此开放对外注册,在注册时填写一些必
要信息,为了防止恶意注册或者填写错误手机号,需要对手机进行发送验证码验证。
- 该系统为面向所有用户的电子产品销售平台,因此开放对外注册,在注册时填写一些必
-
消费者模块
- 此模块即为网页前台,会通过商品类型对商品进行展示,对消费者而言,可以对商品进
行浏览,查看商品详细信息,对评价进行浏览,可以将商品添加进入购物车,批量付款;用
户通过个人管理页面,具有对个人信息进行修改,对收货地址进行修改,对密码进行修改,
上传头像等操作
- 此模块即为网页前台,会通过商品类型对商品进行展示,对消费者而言,可以对商品进
-
管理员模块
- 管理员页面即为网页后台,可以对商品进行管理,添加、更改、查询等操
作
- 管理员页面即为网页后台,可以对商品进行管理,添加、更改、查询等操
数据库表结构分析

-
用户表
- Django 为用户自动创建了一张表,如果不满足要求的话可以在这张表上扩展,自己用
到以及扩展的字段有:id、username(账户)、password(密码)、last_name(用户名)、
user_phone(用户手机号)、user_signature(用户签名),
- Django 为用户自动创建了一张表,如果不满足要求的话可以在这张表上扩展,自己用
-
商品表
- 商品表主要存储商品详细信息,其字段有: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、favorite_detail(购物车备注)、good_id(商品
-
订单表
- 订单表主要包括以下字段:id、order_address(订单地址)、good_num(订单数量)、
good_id(商品 id 关联商品)、user_id(用户 id 关联用户),
- 订单表主要包括以下字段:id、order_address(订单地址)、good_num(订单数量)、
-
评论表
- 评论表主要包括以下字段:id、comment_time(评论时间)、comment_content(评论内
容)、good_id(商品 id 关联商品)、user_id(用户 id 关联用户)
- 评论表主要包括以下字段:id、comment_time(评论时间)、comment_content(评论内