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

Python+Flask+MySQL开发的在线外卖订餐系统(附源码)

文章目录

    • 一、项目模块及功能介绍
      • 1、登录模块
      • 2、注册模块
      • 3、商家用户模块
      • 4、买家用户模块
      • 5、系统管理员模块
      • 源码
    • 二、项目结构
    • 三、环境依赖
    • 四、运行方法
    • 五、系统部分界面展示
      • 1、首页
      • 2、注册界面
      • 3、登录界面
      • 4、商家主界面
      • 5、商家菜单界面
      • 6、商家添加菜品界面
      • 7、商家修改菜品界面
      • 8、商家个人中心
      • 9、商家个人信息修改界面
      • 10、商家密码修改界面
      • 11、买家主界面
      • 12、买家菜单界面
      • 13、买家购物车界面
      • 14、买家个人中心
      • 15、买家个人信息修改界面
      • 16、买家密码修改界面
      • 17、管理员主界面

本项目为Python在线外卖订餐系统, 基于Flask框架+MySQL数据库开发,轻量简洁。

一、项目模块及功能介绍

本系统包括登录模块、注册模块、商家用户模块、买家用户模块、系统管理员模块。具体功能介绍如下:

1、登录模块

  • 选择管理员、商家用户、用户三种身份登录

  • 将输入的用户名与密码与数据库中的数据进行对比验证

2、注册模块

  • 选择商家用户、用户两种身份注册

  • 将注册信息(用户名、密码、电话、地址)存入数据库

3、商家用户模块

  • 维护商家个人信息(店名、地址、联系电话、商家图片)

  • 修改商家个人登录密码

  • 维护菜单列表(菜品名称、菜品描述、营养成分、销量、价格、菜品图片、是否为招牌菜),包括添加、删除、修改

  • 对菜品列表按照销量或价格排序查看

  • 查看顾客订单与完成情况

  • 对顾客订单按照时间或价格排序查看

  • 查看顾客对商家当前菜品的评论(订单号、顾客用户名、餐厅名、是否完成、花费、评分、评语、交易时间)

4、买家用户模块

  • 维护买家用户个人信息(用户名、地址、联系电话)

  • 修改用户个人登录密码

  • 查看商家列表(店名、地址、联系电话、商家图片)

  • 查看商家菜单列表(菜品名称、菜品描述、营养成分、销量、价格、菜品图片、是否为招牌菜)

  • 对菜单列表按销量或价格排序查看

  • 筛选出菜单列表中的特色菜

  • 将菜品加入购物车

  • 维护购物车,包括选择、删除、搜索、修改数量

  • 对购物车进行结算,结算时商品价格可促销打折,可选择堂食或外卖两种就餐方式

  • 查看商家评价信息

  • 查看以完成订单

  • 对当前订单按时间或价格排序查看

  • 查看已发表评价(订单号、顾客用户名、餐厅名、是否完成、花费、评分、评语、交易时间)

  • 查看可发表评价的订单

  • 对可发表评价的订单按交易时间或价格排序查看

5、系统管理员模块

  • 查看各商家获得的评价信息

  • 对各商家获得的评价信息按照评分升序查看

  • 移除恶意营销商家

源码

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

好的文章离不开粉丝的分享、推荐,资料干货、资料分享、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

代码已放置后台

方式①、添加微信号:pythoner666,备注:来自CSDN + 在线外卖订餐系统
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:在线外卖订餐系统

二、项目结构

├── screen_shot          //项目测试截图
├── static             //网页静态资源
│ ├── css             //css样式配置
│ ├── fonts            //字体配置
│ ├── images           //图片文件
│ ├── js              //javascript脚本文件
├── templates           //基于jinja2编写的HTML模板文件
├── app.py             //Web服务启动程序
└── README.md           //help

三、环境依赖

  • Python 3.9.10

  • Flask 2.1.1

  • PyMySQL 1.0.2

  • MySQL 8.0.28

四、运行方法

先以MySQL的root身份执行SQL脚本初始化数据库与数据表项(会提示输入root用户的登录密码)

mysql -uroot -p  < init.sql   

再执行Web服务启动程序

python app.py --mysql_pwd 11235813 --db_name appDB   

注意此处mysql_pwd也是你MySQL的root用户登录密码,db_name即你用init.sql创建的数据库名称。

五、系统部分界面展示

1、首页

2、注册界面

3、登录界面

4、商家主界面

5、商家菜单界面

6、商家添加菜品界面

7、商家修改菜品界面

8、商家个人中心

9、商家个人信息修改界面

10、商家密码修改界面

11、买家主界面

12、买家菜单界面

13、买家购物车界面

14、买家个人中心

15、买家个人信息修改界面

16、买家密码修改界面

17、管理员主界面

相关文章:

Python+Flask+MySQL开发的在线外卖订餐系统(附源码)

文章目录一、项目模块及功能介绍1、登录模块2、注册模块3、商家用户模块4、买家用户模块5、系统管理员模块源码二、项目结构三、环境依赖四、运行方法五、系统部分界面展示1、首页2、注册界面3、登录界面4、商家主界面5、商家菜单界面6、商家添加菜品界面7、商家修改菜品界面8、…...

OpenStack云平台搭建(4) | 部署Placement

目录 安装部署Placement 1、登录数据库授权 2、安装palcement-api 安装部署Placement 【Placement】服务 是从【nova】服务中拆分出来的组件&#xff0c;作用是收集各个【node】节点的可用资源&#xff0c;把【node】节点的资源统计写入到【MySQL】【Placement】服务会被【n…...

GNN图神经网络原理解析

一、GNN基本概念 1. 图的基本组成 图神经网络的核心就是进行图模型搭建,图是由点和边组成的。在计算机处理时,通常将数据以向量的形式进行存储。因此,在存储图时,就会有点的向量,点与点之间边的向量,全局向量(描述整张图),邻接矩阵(记录哪些点之间存在关联)等。 既…...

BI-SQL丨ALL、ANY、SOME

ALL、ANY、SOME ALL、ANY和SOME&#xff0c;这三个关键字&#xff0c;在SQL中使用频率较高&#xff0c;通常可以用来进行数据比较筛选。 注&#xff1a;SQL中ALL的用法和DAX中ALL的用法是完全不同的&#xff0c;小伙伴不要混淆了。 那么三者之间的区别是什么呢&#xff1f; A…...

从0到0.1学习 maven(三:声明周期、插件、聚合与继承)

该文章为maven系列学习的第三篇&#xff0c;也是最后一篇 第一篇快速入口&#xff1a;从0到0.1学习 maven(一&#xff1a;概述及简单入门) 第二篇快速入口&#xff1a;从0到0.1学习 maven(二&#xff1a;坐标、依赖和仓库) 文章目录啥子叫生命周期生命周期详解clean生命周期def…...

【直击招聘C++】2.5 this指针

2.5 this指针一、要点归纳1.什么是this指针2.this指针的深入讨论程序1程序23.类成员函数返回对象和返回对象引用的区别二、面试真题解析面试题1面试题2一、要点归纳 1.什么是this指针 this指针是隐含于每一个类对象的特殊指针&#xff0c;该指针值是一个正在被某个成员函数操作…...

spark数据清洗练习

文章目录准备工作删除缺失值 > 3 的数据删除星级、评论数、评分中任意字段为空的数据删除非法数据hotel_data.csv通过编写Spark程序清洗酒店数据里的缺失数据、非法数据、重复数据准备工作 搭建 hadoop 伪分布或 hadoop 完全分布上传 hotal_data.csv 文件到 hadoopidea 配置…...

Android 12首次开机启动Launcher前黑屏问题解析

在工作中&#xff0c;对于系统开发确实有些难度&#xff0c;特别是在开机阶段遇到的问题&#xff0c;比如开机动画播放完毕进入锁屏界面黑屏几秒然后进入 锁屏界面&#xff0c;这就需要根据开机日志来分析问题所在&#xff0c;在工作中遇到的几种黑屏情况做下记录首次开机进入L…...

使用 LSSVM 的 Matlab 演示求解反常微分方程问题(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 LSSVM的特性 1) 同样是对原始对偶问题进行求解&#xff0c;但是通过求解一个线性方程组&#xff08;优化目标中的线性约束导致…...

动态规划-背包问题

文章目录一、背包问题1. 背包问题简介2. 背包问题解决方法二、01 背包问题1. 实现思路2. 实现代码三、完全背包问题1. 实现思路2. 实现代码四、多重背包问题&#xff08;一&#xff09;1. 实现思路2. 实现代码五、多重背包问题&#xff08;二&#xff09;1. 实现思路2. 实现代码…...

计算24点与运算符重载

十几年前写过一个算24点的程序。记得当时有点费劲&#xff0c;不过最后总算捣鼓出来了。前几天突然想再写一次&#xff0c;结果轻松地写出来了。C&#xff0c;总行数不多&#xff0c;带命令行界面和注释共200行不到&#xff1b;利用了面向对象和运算符重载来简化代码。 首先谈…...

MES系统智能工厂,搭上中国制造2025顺风车

MES在电子制造业中的应用日益广泛&#xff0c;越来越多的厂商已经购置或自行开发了MES&#xff0c;并将其作为“智能化工厂”。国内大大小小、各行各业都有上百个MES系统&#xff0c;还有很多的国外MES系统&#xff0c;怎么才能在MES系统公司中找到适合自己的MES&#xff1f;希…...

【LeetCode】每日一题(1)

目录 题目&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 写在最后&#xff1a; 题目&#xff1a; 这是他给出的接口&#xff1a; class Solution { public:int fillCups(vector<int>& amount) {} }; 作为一个数学学渣&#xff0c;我想不出厉害的数学算法…...

SpringCloud-Netflix学习笔记11——Hystrix实现服务降级

服务降级 是什么&#xff1f; 整体资源快不够了&#xff0c;忍痛将某些服务先关掉&#xff0c;待渡过难关&#xff0c;再开启回来。 如下图&#xff0c;在某一个时间段&#xff0c;访问服务A的请求特别多&#xff0c;而访问服务B和服务C的请求特别少&#xff0c;这时我们可以把…...

Oracle Dataguard(主库为 Oracle rac 集群)配置教程(03)—— 创建 dataguard 数据库之前的准备工作

Oracle Dataguard&#xff08;主库为 Oracle rac 集群&#xff09;配置教程&#xff08;03&#xff09;—— 创建 dataguard 数据库之前的准备工作 / 本专栏详细讲解 Oracle Dataguard&#xff08;Oracle 版本为11g&#xff0c;主库为双节点 Oracle rac 集群&#xff09;的配置…...

零代码做分析报表的bi软件才是好软件

有些数据分析软件对IT的依赖比较重&#xff0c;在制作报表的过程中需要用到SQL&#xff0c;这就导致了IT人员懂技术不懂业务&#xff0c;业务人员懂业务不懂技术&#xff0c;数据分析做来做去总是差点什么的局面。要是遇到了IT部门相对较弱的情况&#xff0c;还会加重IT负担&am…...

linux ALSA 驱动架构

一、kernel Audio驱动架构主流有两大类&#xff0c;一类是SOC Machine架构&#xff0c;另一类是simple-card架构。 MTK、QCom主要采用machine架构&#xff0c;rockchip采用simple card架构。 二、Machine架构驱动介绍 machine 架构每家平台实现并不完全相同&#xff0c;mach…...

JDK 8 JVM内存结构详解

前言 本文所介绍的是 JDK 1.8 版本&#xff0c;其他版本的 JDK 在这里并不一定正确&#xff1b;内容主要摘自周志明的《深入理解Java虚拟机》一书的关键点&#xff0c;并根据自身的理解进行记录。感兴趣的同学可以去阅读原著。 JVM 的内存结构&#xff0c;主要包括以下 5 个区…...

黑马程序员 Linux 教程

目录Linux 简介不同应用领域主流操作系统Linux 系统历史Linux 系统版本Linux 安装安装方式网卡设置安装 SSH 连接工具使用 FinalShell 连接到 LinuxLinux 和 Windows 目录结构对比Linux 目录介绍Linux 常用命令Linux 命令初体验Linux 命令使用技巧Linux 命令格式文件目录操作命…...

文件操作 -- IO

文章目录文件操作 -- IO文件 :文件路径 :文件的类型java 中的文件操作文件内容的相关操作字节流的读和写操作字符流的读和写操作代码案例代码案例一 &#xff1a;代码案例二 &#xff1a;代码案例三 &#xff1a;文件操作 – IO 文件 : 文件相比大家都不陌生把 &#xff0c; 打…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...