购买该资源将获得:完整源码源文件+说明文档+配置教程等


1、网站前台
在虚拟环境中启动程序后,使用浏览器访问“http://127.0.0.1:5000”即可进入网站前台首页。如图1所示。

单击首页左上角“注册”按钮,进入注册页面,如图2所示。注册完成后,进入登录页面,如图3所示。

登录成功后,可以在首页选择商品,也可以通过顶部导航栏分类选择商品。选择商品时,可以将鼠标悬浮到商品图片处,此时会在图片右下角显示一个购物车按钮,如图4所示,单击购物车按钮,将商品加入购物车,如图6所示。

另外,还有一种添加商品到购物车的方法,即可以单击商品图片,进入到商品详情页,如图5所示。

在商品详情页,可以更改商品数量(默认为1),然后单击“添加到购物车”按钮,即可进入购物车页面,如图6所示。

在购物页面,需要填写物流信息,也可以清空购物车。单击“结账”按钮,即可进入支付宝扫码支付页面,如图7所示。

本项目为本地项目,不包含线上支付功能,单击“支付”按钮,则默认用户已经支付成功。单击网站右上方的 “我的订单”,可以查看用户订单,如图8所示。

此外,用户还可以在顶部搜索栏根据商品名称模糊查询商品,如图9所示。搜索结果如图10所示。


2、网站后台
后台管理账号: mr
后台管理员密码:mrsoft
在浏览器中输入网址”http://127.0.0.1:5000/admin/login/” 即可访问网站后台登录页。如图11所示。

登录成功后,进入后台首页,运行效果如图12所示。

单击顶部菜单的“大分类管理”和“小分类管理”,可以管理大分类和小分类。例如,“图书—>管理”和“图书—>小说”中,图书就是大分类,管理和小说都是该大分类下的小分类。图13和图14分别为大分类管理和小分类管理页面。


添加商品前,需要选择对应的大分类和小分类。此外,在添加图片文件时,需要添加商品的图片路径。现将图片拷贝到“app\static\images\goods”路径下,如图15所示。

然后,在添加商品表单的“图片文件”处填写图片的名称,如图16所示。

当单击右侧菜单栏时,会显示对应的页面,菜单如图17所示。

部分源码如下,其余完整详见文末
# 会员数据模型
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer, primary_key=True) # 编号
username = db.Column(db.String(100)) # 用户名
password = db.Column(db.String(100)) # 密码
email = db.Column(db.String(100), unique=True) # 邮箱
phone = db.Column(db.String(11), unique=True) # 手机号
consumption = db.Column(db.DECIMAL(10, 2), default=0) # 消费额
addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 注册时间
orders = db.relationship('Orders', backref='user') # 订单外键关系关联
def __repr__(self):
return '' % self.name
def check_password(self, password):
"""
检测密码是否正确
:param password: 密码
:return: 返回布尔值
"""
from werkzeug.security import check_password_hash
return check_password_hash(self.password, password)
# 管理员
class Admin(db.Model):
__tablename__ = "admin"
id = db.Column(db.Integer, primary_key=True) # 编号
manager = db.Column(db.String(100), unique=True) # 管理员账号
password = db.Column(db.String(100)) # 管理员密码
def __repr__(self):
return "" % self.manager
def check_password(self, password):
"""
检测密码是否正确
:param password: 密码
:return: 返回布尔值
"""
from werkzeug.security import check_password_hash
return check_password_hash(self.password, password)
# 大分类
class SuperCat(db.Model):
__tablename__ = "supercat"
id = db.Column(db.Integer, primary_key=True) # 编号
cat_name = db.Column(db.String(100)) # 大分类名称
addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间
subcat = db.relationship("SubCat", backref='supercat') # 外键关系关联
goods = db.relationship("Goods", backref='supercat') # 外键关系关联
def __repr__(self):
return "" % self.cat_name
# 子分类
class SubCat(db.Model):
__tablename__ = "subcat"
id = db.Column(db.Integer, primary_key=True) # 编号
cat_name = db.Column(db.String(100)) # 子分类名称
addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间
super_cat_id = db.Column(db.Integer, db.ForeignKey('supercat.id')) # 所属大分类
goods = db.relationship("Goods", backref='subcat') # 外键关系关联
def __repr__(self):
return "" % self.cat_name
# 商品
class Goods(db.Model):
__tablename__ = "goods"
id = db.Column(db.Integer, primary_key=True) # 编号
name = db.Column(db.String(255)) # 名称
original_price = db.Column(db.DECIMAL(10,2)) # 原价
current_price = db.Column(db.DECIMAL(10,2)) # 现价
picture = db.Column(db.String(255)) # 图片
introduction = db.Column(db.Text) # 商品简介
views_count = db.Column(db.Integer,default=0) # 浏览次数
is_sale = db.Column(db.Boolean(), default=0) # 是否特价
is_new = db.Column(db.Boolean(), default=0) # 是否新品