电商类
- B2B--企业对企业
阿里巴巴、慧聪网 - C2C--个人对个人
淘宝、易趣、瓜子二手车 - B2C--企业对个人
唯品会、乐蜂网 - C2B--个人对企业
海尔商城、尚品宅配 - O2O--线上到线下
美团、饿了么 - F2C--工厂到个人
戴尔 - B2B2C--企业--企业--个人
京东商城、天猫商城
web项目开发流程

需求分析
用户模块
- 注册页
- 注册时校验用户名是否已被注册。
- 完成用户信息的注册。
- 给用户的注册邮箱发送邮件,用户点击邮件中的激活链接完成用户账户的激活。
- 登录页
- 实现用户的登录功能。
- 用户中心
- 用户中心信息页:显示登录用户的信息,包括用户名、电话和地址,同时页面下方显示出用户最近浏览的商品信息。
- 用户中心地址页:显示登录用户的默认收件地址,页面下方的表单可以新增用户的收货地址。
- 用户中心订单页:显示登录用户的订单信息。
- 其他
- 如果用户已经登录,页面顶部显示登录用户的信息。
商品相关
- 首页
- 动态指定首页轮播商品信息。
- 动态指定首页活动信息。
- 动态获取商品的种类信息并显示。
- 动态指定首页显示的每个种类的商品(包括图片商品和文字商品)。
- 点击某一个商品时跳转到商品的详情页面。
- 商品详情页
- 显示出某个商品的详情信息。
- 页面的左下方显示出该种类商品的2个新品信息。
- 商品列表页
- 显示出某一个种类商品的列表数据,分页显示并支持按照默认、价格、和人气进行排序。
- 页面的左下方显示出该种类商品的2个新品信息。
- 其他
通过页面搜索框搜索商品信息。
购物车相关
- 列表页和详情页将商品添加到购物车。
- 用户登录后,首页,详情页,列表页显示登录用户购物车中商品的数目。
- 购物车页面:对用户购物车中商品的操作。如选择某件商品,增加或减少购物车中商品的数目。
订单相关
- 提交订单页面:显示用户准备购买的商品信息。
- 点击提交订单完成订单的创建。
- 用户中心订单页显示用户的订单信息。
- 点击支付完成订单的支付。
项目架构
页面图

功能图

部署图

项目架构

数据库设计

SKU和SPU概念
SPU = Standard Product Unit (标准产品单位)
SPU 是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述 了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个 SPU。
例如:iphone7 就是一个 SPU,与商家,与颜色、款式、套餐都无关。
SKU=stock keeping unit(库存量单位)
SKU 即库存进出计量的单位, 可以是以件、盒、托盘等为单位。
SKU 是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。 在服装、鞋类商品中使用最多最普遍。
例如:纺织品中一个 SKU 通常表示:规格、颜色、款式。

连接远程数据库
- 新建项目
- 修改DATABASES配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mac',
'USER': 'root',
'PASSWORD': '123',
'HOST': '192.168.0.208',
'PORT': 3306,
}
}
-
修改数据库配置文件的bind-address
/etc/mysql/mysql.conf.d/mysql.cnf #文件地址
mysql.cnf.png
-
重启mysql服务器
sudo service mysql restart -
授权
授权.png
choice选项和富文本编辑器
from django.db import models
from tinymce.models import HTMLField
class GoodTest(models.Model):
STATUS_CHOICES = (
(0, '下架'),
(1, '上架')
)
status = models.SmallIntegerField(choices=STATUS_CHOICES, verbose_name='商品状态')
detail = HTMLField(verbose_name='商品详情')
class Meta:
db_table = 'df_good_test'
verbose_name = '商品'
verbose_name_plural = verbose_name
富文本编辑器
借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的、所见即所得的页面。此处以tinymce为例,其它富文本编辑器的使用也是类似的。
在虚拟环境中安装包。
pip install django-tinymce==2.6.0
安装完成后,可以使用在Admin管理中,也可以自定义表单使用。
- 在test6/settings.py中为INSTALLED_APPS添加编辑器应用。
INSTALLED_APPS = (
...
'tinymce',
)
- 在test6/settings.py中添加编辑器配置。
TINYMCE_DEFAULT_CONFIG = {
'theme': 'advanced',
'width': 600,
'height': 400,
}
- 在test6/urls.py中配置编辑器url。
urlpatterns = [
...
url(r'^tinymce/', include('tinymce.urls')),
]
分布式fasdDFS文件系统
https://www.cnblogs.com/chiangchou/p/fastdfs.html
https://www.cnblogs.com/chiangchou/p/fastdfs.html
https://blog.csdn.net/u014179267/article/details/87970521
[安装下载地址]https://github.com/happyfish100/libfastcommon/releases
[nginx下载地址]http://nginx.org/en/download.html
[nginx安装问题]https://blog.csdn.net/jaybill/article/details/80164370
[fastdfs-nginx-module下载地址]https://github.com/happyfish100/fastdfs-nginx-module
上传图片和使用图片的流程

网友评论