当前位置: 首页 > news >正文

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

wx供重浩:创享日记
对话框发送:python51
获取完整源码源文件+说明文档+配置教程等


在这里插入图片描述

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 '<User %r>' % self.namedef check_password(self, password):"""检测密码是否正确:param password: 密码:return: 返回布尔值"""from werkzeug.security import check_password_hashreturn 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.managerdef check_password(self, password):"""检测密码是否正确:param password: 密码:return: 返回布尔值"""from werkzeug.security import check_password_hashreturn 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

相关文章:

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

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;python51 获取完整源码源文件说明文档配置教程等 1、网站前台 在虚拟环境中启动程序后&#xff0c;使用浏览器访问“http://127.0.0.1:5000”即可进入网站前台首页。如图1所示。 单击首页左上角“注册”按钮&#xff0c;进…...

PowerShell 实现企业微信机器人推送消息

前言企业微信机器人 在ARMS告警管理中创建企业微信机器人后&#xff0c;您可以在通知策略中指定对应的企业微信群用于接收告警。当通知策略的匹配规则被触发时&#xff0c;系统会自动向您指定的企业微信群发送告警通知。企业微信群收到通知后&#xff0c;您可以在企业微信群中…...

IDEA集成Git就是这么简单

IDEA集成Git 文章目录IDEA集成Git配置Git环境配置Git的忽略文件①为什么需要配置忽略文件&#xff1f;②配置忽略文件③引用配置文件配置IDEA初始化项目添加到暂存区方式一&#xff1a;方式二&#xff1a;移除暂存区提交到本地库分支创建分支切换分支版本穿梭配置Git环境 配置…...

springBoot 事务基本原理

springBoot事务基本原理是基于spring的BeanPostProcessor&#xff0c;在springBoot中事务使用方式为&#xff1a; 一、在启动类上添加注解&#xff1a;EnableTransactionManagement 二、在需要事务的接口上添加注解&#xff1a;Transactional 基本原理&#xff1a; 注解&am…...

HBuilderX无线连接真机

说明 安装的是HBuilderX&#xff0c;不是HBuilder&#xff0c;adb.exe所在目录是 x:\HBuilderX\plugins\launcher\tools\adbs\ 里面可能有其他版本&#xff0c;用哪个都&#xff0c;建议使用最新的 配置 首先&#xff0c;将真机使用USB连接到电脑上。 在adb目录中启动命令…...

idea初学笔记

注:初学需安装idea专业版&#xff0c;方便学习使用idea运行内存配置从eclipse工具开发 转 idea工具开发&#xff0c;可设置idea快捷键同eclipse快捷键 file -> Settings -> Keymap -> 选择Eclipse -> OK设置idea项目整体编码格式file -> Settings -> Editor …...

C++核心编程<类和对象>(4)

C核心编程<类和对象>4.类和对象4.1封装4.1.1封装的意义封装的意义1封装的意义24.1.2struct和class区别4.1.3成员属性设置为私有4.2对象的初始化和清理4.2.1构造函数和析构函数1.1构造函数语法&#xff1a;类名(){}1.2析构函数语法&#xff1a; ~类名(){}4.2.2构造函数的分…...

编写http workshop脚本从网页缓存里解析音乐

前一篇文章 编写http workshop脚本从网站下载音乐 示范了如何使用HttpClient访问API,以及Json数据的解析; 今天我们通过解析一个网页展示如何使用内置的LibXml2的功能解析HTML,提取我们关心的内容。 这里随便搜了2个资源类的网站,竟然使用的格式是一模一样的: https://www…...

当数字孪生遇上轨道交通,会有什么新发展?

轨道交通是城市间互通互联的命脉&#xff0c;是当下人们出行的首要选择之一&#xff0c;也是我国“新基建”的重点建设对象。将城轨交通各链路系统及多类型服务&#xff0c;与空间感知、移动互联、云计算等技术深度融合&#xff0c;集中实现城市空间、城轨分布、城轨运行动态的…...

原理底层计划--分布式事务

分布式事务 mysql事务 我们通过show engines查询存储引擎&#xff0c;mysql一般为innodb, 为什么&#xff1f; 因为innodb支持事务是原因之一。 特性无非ACID 原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性 一致性是最后追求的结果&#xff0c;也就保证了数…...

Hive总结

文章目录一、Hive基本概念二、Hive数据类型三、DDL,DML,DQL1 DDL操作2 DML操作3 DQL操作四、分区操作和分桶操作1、分区操作2、分桶操作五、Hive函数六、文件格式和压缩格式一、Hive基本概念 Hive是什么&#xff1f; Hive&#xff1a;由 Facebook 开源用于解决海量结构化日志的…...

docker环境下安装jenkins

前言 差点被Jenkins的插件搞麻了&#xff0c;又是依赖不对又是版本需要升级的&#xff0c;差点破口大骂了&#xff0c;还好忍住了&#xff0c;静下心来慢慢搞&#xff0c;终于搞通了。这里必须记录一下。 废话不多说&#xff0c;上来就是干&#xff0c;jenkins是干嘛用的&…...

Shifu基础功能:设备接入

如何修改设备接入的配置 1. 编辑edgedevice.yaml文件 接入设备前&#xff0c;您需要对edgedevice.yaml文件进行编辑。对于不同的协议&#xff0c;protocolSettings可根据协议进行进一步配置&#xff0c;详细配置请前往Shifu API参考。 ... connection: Ethernet address: …...

基于Java+SpringBoot+Vue+Redis+RabbitMq的鲜花商城

基于JavaSpringBootVueRedisRabbitMq的鲜花商城 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、…...

蓝桥杯真题(解码)小白入!

本来看这个题感觉很简单&#xff0c;不就是Ascall值换来换去嘛&#xff0c;其实也真的这样&#xff0c;但是对于小白来说&#xff0c;ascall根本记不住 题目说了&#xff0c;每个数不会重复超过9次&#xff08;这见到那多了&#xff0c;不然根本不会写&#xff09; 其次如何实现…...

并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?

第20讲 | 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别&#xff1f; 在上一讲中&#xff0c;我分析了 Java 并发包中的部分内容&#xff0c;今天我来介绍一下线程安全队列。Java 标准库提供了非常多的线程安全队列&#xff0c;很容易混淆。 今天我要问你的…...

分享四个前端Web3D动画库在Threejs中使用的动画库以及优缺点附地址

Threejs中可以使用以下几种动画库&#xff1a;Tween.js&#xff1a;Tween.js是一个简单的缓动库&#xff0c;可以用于在three.js中创建简单的动画效果。它可以控制数值、颜色、矢量等数据类型&#xff0c;并提供了多种缓动函数&#xff0c;例如线性、弹簧、强化、缓冲等等。区别…...

谷歌浏览器和火狐浏览器永久禁用缓存【一劳永逸的解决方式】

目录 前言 谷歌浏览器 方式一 方式二 火狐浏览器 前言 缓存对于开发人员来说异常的痛苦,很多莫名其妙的bug就是由缓存导致的,但当我们在网上查找禁用缓存的方式时,找到的方式大多数都是在开发者工具的面板中勾选禁用缓存的选项,但这种方式有个弊端就是需要一直打开这个…...

kibana查看日志

一、背景 kibana收集日志功能很强大&#xff0c;之前只是简单的使用&#xff0c;此次系统学习了解并分享一波 二、kibana查看日志的基本使用 1.选择查询的服务和日志文件 注意&#xff1a;每个应用配置了开发与生产环境&#xff0c;需要找到指定的应用 1.1选择对应的应用 1.…...

JS 异步接口调用介绍

JS 异步接口调用介绍 Js 单线程模型 JavaScript 语言的一大特点就是单线程&#xff0c;也就是说&#xff0c;同一个时间只能做一件事。这样设计的方案主要源于其语言特性&#xff0c;因为 JavaScript 是浏览器脚本语言&#xff0c;它可以操纵 DOM &#xff0c;可以渲染动画&a…...

AutoHotkey自动化效率提升指南:从入门到进阶的全场景应用技巧

AutoHotkey自动化效率提升指南&#xff1a;从入门到进阶的全场景应用技巧 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.co…...

从零到一:NS2网络模拟器实战部署与场景构建指南

1. NS2网络模拟器入门指南 第一次接触NS2的朋友可能会被这个老牌网络模拟器的配置过程吓到。我刚开始用的时候&#xff0c;光是解决依赖问题就折腾了两天。不过别担心&#xff0c;跟着我的步骤走&#xff0c;你可以在半小时内完成基础环境搭建。 NS2本质上是一个离散事件网络模…...

推荐8款提升论文效率的AI工具(含爱毕业aibiye)和简易使用教程

在学术研究领域&#xff0c;AI技术的应用显著提升了论文写作的效率与质量。以下推荐8款功能强大的智能工具&#xff0c;涵盖文献解析、内容生成、文本优化等关键环节&#xff0c;助力研究者高效完成从资料收集到论文润色的全流程工作。这些创新解决方案能够有效简化研究过程&am…...

资源提取高效解析与跨设备管理:猫抓浏览器扩展的技术实践

资源提取高效解析与跨设备管理&#xff1a;猫抓浏览器扩展的技术实践 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字化内容爆炸的今天&…...

推荐8款AI辅助论文写作工具(如爱毕业aibiye)与入门使用教程

人工智能技术在学术研究中的深度整合&#xff0c;显著优化了学术论文的创作效能与成果质量。通过文献智能分析、语义生成引擎和语言优化算法等核心技术&#xff0c;8款前沿工具系统覆盖了知识图谱构建、学术内容生成、多维度文本增强等核心研究场景。这些智能化平台基于深度学习…...

嵌入式开发调试宏与性能优化实战

1. 嵌入式开发调试宏的妙用在嵌入式开发中&#xff0c;调试是最耗时耗力的环节之一。每次修改代码后都需要重新烧录、运行、观察结果&#xff0c;这个过程往往要重复数十次。而合理使用编译器提供的调试宏&#xff0c;可以大幅提升调试效率。1.1 基础调试宏解析GCC编译器提供了…...

【ACCELERATED GSTREAMER PERFORMANCE GUIDE】Choosing Between videoconvert and nvvidconv for Optimal Vid

1. 理解videoconvert与nvvidconv的核心差异 第一次接触GStreamer视频处理时&#xff0c;很多人都会困惑到底该用videoconvert还是nvvidconv。这个问题就像选择交通工具&#xff1a;你是要经济实惠的公交车&#xff08;CPU处理&#xff09;&#xff0c;还是要速度更快的出租车&a…...

3步轻松延长Navicat使用周期:Mac用户实用指南

3步轻松延长Navicat使用周期&#xff1a;Mac用户实用指南 【免费下载链接】navicat_reset_mac navicat16 mac版无限重置试用期脚本 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还在为Navicat试用期到期烦恼吗&#xff1f;作为数据库管理的得力工具…...

我的实用设计模式之 关于Policy-based design在Windows Mobile网络连接管理的应用

Raw Data&#xff08;原数据&#xff09;使用不要的分析器&#xff08;分析器使用不同的算法&#xff09;分析出关心的Event&#xff08;事件&#xff0c;对象&#xff0c;告警等等&#xff09;。同时作为behavior模式之一&#xff0c;stragety模式也可以使用在 定义多个behavi…...

m4s-converter:打破B站缓存限制,永久保存珍贵视频内容

m4s-converter&#xff1a;打破B站缓存限制&#xff0c;永久保存珍贵视频内容 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 在数字内容时代&am…...