一、Django电商项目开始与建模
(一)商城项目介绍
项目功能的划分
电商项目我们划分为两个部分:
1、前台消费的部分,负责展示,出售商品
2、后台管理部分,负责商品上架,下架管理
项目被分为2个部分,一部分是前台(Buyer),一部分是后台(Store)
基于项目我们要介入git版本管理。
数据库建模
进行版本迭代的建模
首先进行后台的开发
卖家
Username 用户名
Password 密码
Nickname 昵称
Phone 电话
Email 邮箱
Picture 头像
Address 地址
card_id 身份证
店铺类型
Name 类型名称
Description 类型描述
店铺
Name 店铺描述
Address 店铺地址
Logo 店铺logo
Call_number
Money 店铺注册资金
User_id 卖家id
Type 多对多
商品
Name 商品名称
Price 商品价格
Image 商品图片
Number 商品数量库存
Description 商品的描述
State 商品的状态
Data 出厂日期
safeDate 保质期
商品图片
Shop_id 多对一
Img_address
Img_description
开始搭建项目:
1、创建git仓库
2、拉取git仓库
3、创建django项目,提交到远端。
2、定义模型models.py
from django.db import models
class Seller(models.Model):
username = models.CharField(max_length=32,verbose_name="用户名")
password = models.CharField(max_length=32, verbose_name="密码")
nickname = models.CharField(max_length=32, verbose_name="昵称",null=True,blank=True)
phone = models.CharField(max_length=32, verbose_name="电话",null=True,blank=True)
email = models.EmailField(verbose_name="邮箱",null=True,blank=True)
picture = models.ImageField(upload_to="store/images", verbose_name="用户头像",null=True,blank=True)
address = models.CharField(max_length=32, verbose_name="地址",null=True,blank=True)
card_id = models.CharField(max_length=32, verbose_name="身份证",null=True,blank=True)
class StoreType(models.Model):
store_type = models.CharField(max_length=32,verbose_name="类型名称")
type_descripton = models.TextField(verbose_name="类型名称")
class Store(models.Model):
store_name = models.CharField(max_length=32, verbose_name="店铺名称")
store_address = models.CharField(max_length=32,verbose_name="店铺地址")
store_descripton = models.TextField(verbose_name="店铺描述")
store_logo = models.ImageField(upload_to="store/images",verbose_name="店铺logo")
store_phone = models.CharField(max_length=32,verbose_name="店铺电话")
store_money = models.FloatField(verbose_name="店铺注册资金")
user_id = models.IntegerField(verbose_name="店铺主人")
type = models.ManyToManyField(to=StoreType,verbose_name="店铺类型")
class Goods(models.Model):
goods_name = models.CharField(max_length=32,verbose_name="商品名称")
goods_price = models.FloatField(verbose_name="商品价格")
goods_image = models.ImageField(upload_to="store/images", verbose_name="商品图片")
goods_number = models.IntegerField(verbose_name="商品数量库存")
goods_description = models.TextField(verbose_name="商品描述")
goods_date = models.DateField(verbose_name="出厂日期")
goods_safeDate = models.IntegerField(verbose_name="保质期")
store_id = models.ManyToManyField(to=Store,verbose_name="商品店铺")
class GoodsImg(models.Model):
img_address = models.ImageField(upload_to="store/images",verbose_name="图片地址")
img_description = models.TextField(max_length=32, verbose_name="图片描述")
goods_id = models.ForeignKey(to = Goods,on_delete = models.CASCADE, verbose_name="商品id")
2、settings.py设置
配置app
设置模板目录
设置静态文件
STATIC_URL = '/static/'
# STATICFILES_DIRS=(
# os.path.join(BASE_DIR,"static"),
# )
# MEDIA_URL="/media/"#长传文件
# MEDIA_ROOT=os.path.join(BASE_DIR,"static")
STATIC_ROOT=os.path.join(BASE_DIR,"static")#收集静态文件