Django商品
我们要做一个Django电商项目,那么在开始我们需要将项目分析,功能块,还有逻辑弄清楚,
1.功能块
版本
优化思想
商城项目:
买家:购物车
卖家:店铺
商品
我们首先要先把他们的关系整理好,可能下面的图不是太好看,凑合看一下
按照上面的逻辑,卖家有卖家的店面,买家有买家的页面。我们这里不使用Django自带的后台
解析前端:
网页页面顺序逻辑:
业务基本逻辑 login–》index–》--》list–》intrduce
买家 :商店–》添加购物车–》选择商品进行购买–》生成订单–》确认地址–》确认支付–》支付后订单–》确认订单
卖家 :上架商品–》接收订单–》确认订单–》发送商品–》等待确认
大致的关系就是这样接下来我们开始数据建模
-卖家:
username ,
password,
nickname,
photo,
phone,
address,
email,
ID_number
Bank_card (一个卖家可以有多张银行卡,所以是一对多关系)
Bank_card :
number,
bankAddress,
username,
idCard,
phone
商品:
shopping_id,
shopping_name,
shopping_price,
shopping_now_price,
shopping_img(一个商品可以有多张图片),
shopping_num,
shopping_description 描述
shopping_content 详情
shopping_show_time 发布时间
图片
Img_adress
Img_label
Img_description
分类
Label
Parent_id
Description
父子id思想:
通过父子id来定义上下关联关系
Github使用的就是这个逻辑
卖家店铺逻辑我们先不说,接下来就是环境搭建
- 搭建虚拟环境
然后进入虚拟环境下我们需要安装三个安装包,注意先进入虚拟环境
Pip install pyMySQL
Pip install pillow
Pip install django
安装完成以后我们来创建项目 - 创建项目
创建项目和APP
构建内部结构 - 模型描述:
from django.db import models
class Types(models.Model):
label = models.CharField(max_length = 32)
parent_id = models.IntegerField()
description = models.TextField()
class Seller(models.Model):
username = models.CharField(max_length = 32)
password = models.CharField(max_length = 32)
nickname = models.CharField(max_length = 32)
photo = models.ImageField(upload_to = “image”)
phone = models.CharField(max_length = 32)
address = models.CharField(max_length = 32)
email = models.EmailField()
id_number = models.CharField(max_length = 32)
class Goods(models.Model):
goods_id = models.CharField(max_length = 32)
goods_name = models.CharField(max_length = 32)
goods_price = models.FloatField() #原价
goods_now_price = models.FloatField() #当前价格
goods_num = models.IntegerField() #库存
goods_description = models.TextField() #描述
goods_content = models.TextField() #详情
goods_show_time = models.DateField() #发布时间
types = models.ForeignKey(Types,on_delete = True) #一个分类会有多个商品
seller = models.ForeignKey(Seller, on_delete=True) #一家店铺会有多个商品
class Image(models.Model):
img_adress = models.ImageField(upload_to = “image”)
img_label = models.CharField(max_length = 32)
img_description= models.TextField()
goods = models.ForeignKey(Goods, on_delete=True) # 一个商品多张图片
class BankCard(models.Model):
number = models.CharField(max_length=32)
bankAddress = models.CharField(max_length=32)
username = models.CharField(max_length=32) # 持卡人姓名
idCard = models.CharField(max_length=32)
phone = models.CharField(max_length=32)
seller = models.ForeignKey(Seller, on_delete=True)
注意:使用外键
商家 和 银行卡 一对多
商品 和 图片 一对多
类型 和 商品 一对多
商家 和 商品 一对多
- stttings配置
安装APP
配置静态模板
mysql数据库配置
静态文件加载目录
4 进行数据同步
前提虚拟环境下 :同步三部曲 校验,生成数据库语句,同步数据库