python线上商城网站项目前台和后台源码

简介: python线上商城网站项目前台和后台源码

1、网站前台

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


c76c8b2c4a0e2bcb5735494cd226455.png


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

d683cb64f5030f3b2ec75ff3ded85c0.png


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


2244f2b2f552ceb4c1700597f455447.png

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


1dee1e13db894a944d601d50b8b778f.png

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

47751ee97d07579c2a3a2a88c6ab596.png


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



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


d261360dd0796e61e29ea0c60c41e96.png9b4bff4a5c6c739aa6e233f9bdc303c.png084c3872395f82c0344ae9730fed8ba.png

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


ed82d3396370c4a7b9aaeae155abb72.png




2、网站后台

后台管理账号: mr

后台管理员密码:mrsoft

在浏览器中输入网址”http://127.0.0.1:5000/admin/login/” 即可访问网站后台登录页。如图11所示。


ed82d3396370c4a7b9aaeae155abb72.png

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

2b8bb7bc0105fd7c015cd87b4c87e11.png


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


68d4085b0c3989f7e484d54280328bd.png

20ae374e385d9ffb02c3696962567c3.png

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

14375d4d66d9a95abff35711e1b141a.png


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


784f507261d133c2cd4a025e38d5e50.png

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


f1e991aa57b6b69150321f3843ea488.png


部分源码如下,其余完整详见下载。

# 会员数据模型
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 '<User %r>' % 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 "<Admin %r>" % 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 "<SuperCat %r>" % 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 "<SubCat %r>" % 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) # 是否新品
    # 设置外键
    supercat_id = db.Column(db.Integer, db.ForeignKey('supercat.id'))  # 所属大分类
    subcat_id = db.Column(db.Integer, db.ForeignKey('subcat.id'))  # 所属小分类
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    cart = db.relationship("Cart", backref='goods')  # 订单外键关系关联
    orders_detail = db.relationship("OrdersDetail", backref='goods')  # 订单外键关系关联
    def __repr__(self):
        return "<Goods %r>" % self.name
# 购物车
class Cart(db.Model):
    __tablename__ = 'cart'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    goods_id = db.Column(db.Integer, db.ForeignKey('goods.id'))  # 所属商品
    user_id = db.Column(db.Integer)  # 所属用户
    number = db.Column(db.Integer, default=0)  # 购买数量
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    def __repr__(self):
        return "<Cart %r>" % self.id
# 订单
class Orders(db.Model):
    __tablename__ = 'orders'
    id = db.Column(db.Integer, primary_key=True)  # 编号
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 所属用户
    recevie_name = db.Column(db.String(255))  # 收款人姓名
    recevie_address = db.Column(db.String(255))  # 收款人地址
    recevie_tel = db.Column(db.String(255))  # 收款人电话
    remark = db.Column(db.String(255))  # 备注信息
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间
    orders_detail = db.relationship("OrdersDetail", backref='orders')  # 外键关系关联
    def __repr__(self):
        return "<Orders %r>" % self.id


相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python 数据分析:从零开始构建你的数据科学项目
【10月更文挑战第9天】Python 数据分析:从零开始构建你的数据科学项目
61 2
|
20天前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
21天前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
25天前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
28 4
|
1月前
|
弹性计算 Linux iOS开发
Python 虚拟环境全解:轻松管理项目依赖
本文详细介绍了 Python 虚拟环境的概念、创建和使用方法,包括 `virtualenv` 和 `venv` 的使用,以及最佳实践和注意事项。通过虚拟环境,你可以轻松管理不同项目的依赖关系,避免版本冲突,提升开发效率。
85 3
|
2月前
|
JSON 搜索推荐 API
Python的web框架有哪些?小项目比较推荐哪个?
【10月更文挑战第15天】Python的web框架有哪些?小项目比较推荐哪个?
73 1
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
72 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 算法框架/工具 Python
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
94 0
|
安全 Java Python
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
|
6月前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。