如果直接阅读本文,您可能有些不知所云,这是因为我用很多篇幅讲了一个事情,如果想知道上下文,那么建议您从本专栏第22章看起:Python3开发–22–了解Django框架
一、项目需求设计
我们本专栏的Django项目,是以网上最常见的商城为例子来撰写的,商城也是学习过程中最常见的参照对象!
一个商城的概要设计如下:
1、网站首页
:应设有导航栏,并且所有功能展示在导航栏,在导航栏的下面展示各类的热销商品,当单击商品图片时即可进入商品详细页面,导航栏的上方设有搜索框,便于用户搜索相关的商品。
功能
:商品搜索功能、网站导航、广告轮播、商品热销分类、网站尾部。
2、商品列表页
:将所有商品按一定的规则排序展示,用户可以从销量、价格等设置商品的排序方式,并在页面左侧设置分类列表,选择某一分类可以筛选出相应的商品信息。
功能
:商品搜索功能、网站导航、商品分类、商品列表信息。
3、商品详细页
:展示某一商品的详细介绍,并在详细介绍的左侧设置热销商品列表。
功能
:商品搜索功能、网站导航、商品基本信息、商品详细介绍、热销推荐。
4、购物车页
:只能在用户已登录的情况下才能访问,它是将用户选购的商品以列表形式展示,列表的每行包含了商品的图片、名称、单价、数量、合计和删除操作,用户可以增减商品的购买数量,并且能自动计算费用。
功能
:商品搜索功能、网站导航、商品的购买费用核算。
5、个人中心页
:用于展示用户的基本信息和订单信息,只能在用户已登录的情况下才能访问。
功能
:商品搜索功能、网站导航、用户基本信息、订单信息。
6、用户登录注册页
:共用一个页面,如果账号已存在,则对账号密码进行验证并登录,如果用户不存在,则对当前账号密码进行注册处理。
功能
:商品搜索功能、网站导航、登录注册表单。
二、数据库设计
数据库:使用MySQL,除了Django内置数据表外,主要有商品信息表、商品类别表、购物车信息表、订单信息表等。
1、商品信息表数据结构
表字段 | 字段类型 | 含义 |
id | Int类型,长度为11 | 主键 |
name | Varchar类型,长度为100 | 商品名称 |
sezes | Varchar类型,长度为100 | 商品规格 |
types | Varchar类型,长度为100 | 商品类型 |
price | Float类型 | 商品价格 |
discount | Float类型 | 折后价格 |
stock | Int类型 | 存货数量 |
sold | Int类型 | 已售数量 |
likes | Int类型 | 收藏数量 |
created | Date类型 | 上架日期 |
img | Varchar类型,长度为100 | 商品主图 |
details | Varchar类型,长度为100 | 商品描述 |
2、商品类别表数据结构
表字段 | 字段类型 | 含义 |
id | Int类型,长度为11 | 主键 |
firsts | Varchar类型,长度为100 | 一级分类 |
seconds | Varchar类型,长度为100 | 二级分类 |
3、购物车信息表数据结构
表字段 | 字段类型 | 含义 |
id | Int类型,长度为11 | 主键 |
quantity | Int类型,长度为11 | 购买数量 |
commodityInfos_id | Int类型,长度为11 | 商品信息表的主键id |
user_id | Int类型,长度为11 | Django内置用户表的主键id |
4、订单信息表数据结构
表字段 | 字段类型 | 含义 |
id | Int类型,长度为11 | 主键 |
price | Float类型,长度为11 | 订单总价 |
created | Int类型,长度为11 | 订单创建时间 |
user_id | Date类型 | Django内置用户表的主键id |
state | Varchar类型,长度为20 | 订单状态 |