[Python01]Django电商-立项需求分析和结构设计

摘要:
④ C2B:与DSM相反,消费者首先提出需求,然后由生产企业生产,即个性化定制,如尚品家居配件。⑥ F2C:工厂直接面向个人,没有任何中间商联系,例如戴尔。⑦ B2B2C:第一个B是指商品或服务的供应商,第二个B是从事电子商务的企业,电子商务起着整合和桥梁的作用。例如,京东和天猫等项目的工作流程和具体实施基于Django框架建立了一个简单的电子商务网站平台进行测试,以实现通用功能。

目录

Django电商第一章:立项需求分析和数据库设计

电商的7种商业模式介绍

电商即电子商务(Electronic Commerce),是是以信息网络技术为手段,以商品交换为中心的商务活动,其有多种模式:
①B2B(Business to Business):电子交易的双方都是商家,使用网络技术完成商务交易,如阿里巴巴、慧聪网等。
②B2C(Business to Consumer):直接面向消费者销售产品和服务商业零售模式,一般以网络零售业为主,主要借助互联网完成在线销售活动,如唯品会等。
③C2C(Consumer to Consumer):消费者与消费者之间的电子商务行为,通过网络技术,如闲鱼、淘宝等。
④C2B(Consumer to Business):与DSM(Demand Supply Model)相反,先由消费者提出需求,后由生产企业生产,即个性化定制,如尚品宅配等。
⑤O2O(Online to Offline):线上到线下,是指将线下的商务机会与线上结合,让互联网成为线下交易的平台,如美团、饿了么等。
⑥F2C(Factory to Consumer):工厂直接到个人,无任何中间商环节,如戴尔。
⑦B2B2C(Business to Business to Consumer):第一个B指商品或服务的供应商,第二个B指从事电子商务的企业,起整合与桥梁的作用,如京东、天猫等

项目的工作流程与具体实现

项目流程

立项

搭建一个简单的测试用电商网站平台,以Django框架为基础,实现常用功能。
工作: 找一个电商平台熟悉各种业务流程

需求分析

  • 1 用户模块(与用户相关的页面与功能,及校验登录)
    (1)注册页:①注册时校验用户名是否占用②完成注册③发送注册邮件(点击激活链接激活);
    (2)登录页:①实现用户的登录功能②实现登录后跳转回原来页面(待)③实现检测登录状态;
    (3)用户中心信息页:①显示用户的详细信息②显示最近浏览的商品信息③地址/订单页跳转(侧边栏);
    (4)用户中心地址页:①显示用户的当前默认收件地址②显示新增收件地址表单③侧/上边栏跳转;
    (5)用户中心订单页:①显示历史订单详细信息(添加功能按钮,支付等)②边栏跳转;
    (6)与用户相关的其他页面:若为已登录状态,则在顶部边栏显示用户信息(未登录显示登录跳转);

  • 2 商品模块
    (1)首页:①动态指定轮播商品②动态指定活动页面③动态指定显示商品种类④动态指定显示首页的商品种类和信息⑤每个商品(包括图片与文字)都可链接至商品详情页⑥边栏跳转;
    (2)商品详情页:①显示某商品的详情信息,并添加购物车/购买跳转②显示同类其他商品;
    (3)商品列表页:①分页显示一个种类的所有商品,并支持按照默认、价格、人气排序②显示同类商品;
    (4)其他:①通过搜索框按关键字搜索商品②搜索出的商品排序;

  • 3 购物车模块
    (1)购物车页:
    ①显示添加到购物车的商品信息
    ②操作按钮,增加/减少数目/删除等,并显示结算信息;
    (2)其他:
    ①商品详情页与列表页中添加到购物车按钮
    ②登录后顶部边栏显示购物车数目;

  • 4 订单模块
    (1)提交订单页:
    ①展示准备购买的商品信息和价格结算
    ②显示用户收件地址
    ③提交订单完成订单创建
    ④自动跳转至支付页面/用户中心订单页

原型设计与项目架构

将需求按模块及其功能划分,细化到每个模块下需要实现的功能,并选择开发环境,部署架构,编写框架(Django)

数据库设计

(1)分析数据表与表字段:通过实现功能及界面设置表字段(包括一些标识字段,如账号激活/权限等级/删除等);
①使用mysql定义表单并存储信息;
②由于购物车中内容变化可能性大且频繁,因此使用redis来实现购物车功能,并用户历史浏览记录(并session);
③使用celery进行异步任务处理;
④使用fastdfs分布式文件存储系统存储图片;
(2)添加表关系:通过分析是否一对多等建立表关系,分析后建立的表如下图所示;
实体关系模型1

实体关系模型2

注:
①在多张表关联时,一般一对多的母表中是不需要存在单独字段对应子表的,但在某些特殊情况下,如在商品表中放一张图片,在同时显示多个商品时不需要多次关联查询即可显示(多用于主页/列表页),以空间换取时间;
②电商中SPU(Standard Product Unit)标准产品单位,是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性,例如iPhone7是一个SPU,其与商家/颜色/款式/套餐/配置等都无关;SKU(stock keeping unit)库存量单位,是物理上不可分割的最小存货单元,例如某颜色某款式某配置的手机,具体到单个商品。一个SPU下可以有多个SKU,因此在设计表时,需将商品的SPU与SKU表分开储存;

代码实现

代码实现是程序开发的重点工作,对于大型项目而言,单个开发者往往只承担其中几个或一个模块甚至单个模块中的部分功能,代码的整合、测试与发布也由专人负责,但在学习过程中,需要了解整个项目的架构、运作、及测试发布流程。

简单总结

搭建一个电商网站平台,实现用户注册、商品浏览、商品查询、购物车、订单、支付宝交互等多种功能,并进行缓存、静态页面、图片独立存储等优化。
①使用架构:python+Django+uWSGI+nginx
②使用数据库:MySQL+redis
③使用优化工具:FastDFS(我们会用七牛文件存储服务器代替)+celery

免责声明:文章转载自《[Python01]Django电商-立项需求分析和结构设计》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇全面解决.Net与Java互通时的RSA加解密问题,使用PEM格式的密钥文件【转】如何使用Git上传本地项目到github?(mac版)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Django(三)

1、Django请求的生命周期         路由系统 -> 视图函数(获取模板+数据-->渲染) -> 字符串返回给用户   2、路由系统         /index/                ->  函数或类.as_view()         /detail/(d+)          ->  函数(参数) 或...

DRF基础操作流程

Django Rest_Framework 核心思想: 缩减编写api接口的代码 ——>DRF Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。在REST framework中,提供了序列化器serializers的定义,可以帮助我们简化序列化与反序列化的过程,...

Django 表操作-表之间的关系(建立在MySQL上)

Django 表操作-表之间的关系(建立在MySQL上) 数据表之间的关系有:一对多,多对多和一对一,在Django项目中做好建立表关系的准备 数据表:book,book_detail,author,publish 数据关系: 多对多:book和author 一对多:book和publish 一对一:book和book_detail 所有外键推荐建立在查询...

Django框架简介

Django框架简介 MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。 想要更详细的了解MVC模式? >>点我 Django框架的设...

android黑科技系列——手机端破解神器MT的内购VIP功能破解教程

一、前言 在破解app的时候,我们现在几乎都是在PC端进行操作,但是之前bin神的MT管理器,可以在手机端直接破解,不过也有很大的局限性,但是对于一些简单的app破解没问题的。这个工具其实原理也很简单,就是解析apk中的dex,arsc等文件,然后支持修改其中的类方法信息和资源信息,然后在二次打包签名即可。其实把这部分功能移到了移动端做了,不过值得佩服的是...

Django(七)

一、ModelForm操作及验证 1、class Meta:class Meta: #注意以下字段不能加逗号 model = models.UserInfo #这里的all代指所用的字段,也可以是一个列表,里面是model中的字段 fields = '__all__' # fields = ['username','user_type...