基于python的美食订餐推荐系统【论文、源码、开题报告】

本文档详细介绍了基于Python的美食订餐推荐系统的研究背景、关键技术和系统分析。研究背景指出,随着信息化发展,美食推荐系统管理的需求日益增加。关键技术包括Python、Django框架、MySQL数据库和B/S架构。系统分析涵盖了业务需求、非功能需求和可行性分析,强调了系统在技术、经济和操作上的可行性。此外,系统设计部分提到了采用MVC模型的框架设计和数据库设计,实现了用户、管理员和厨房的功能模块。系统实现了登录、信息添加和删除等流程,并通过白盒和黑盒测试确保了功能的正常运行。
摘要由CSDN通过智能技术生成

第一章 绪论

1.1研究背景

20世纪,随着科学技术的飞速发展,数字化和信息化成为了一个新的发展趋势,信息化的管理方式成为了各个行业的追求的目标,而信息化的管理方式更是成为了人们追求的目标。目前,我国高等院校工程技术和电子管理学已经将信息化技术作为必修课。

在当今社会,人们的生活节奏逐渐加快,人们对经济的要求逐渐降低,越来越多的人开始追求简单、快捷的方式。随着经济的发展,人民的生活水平也提高了,用户有了更多的时间去消费。然而,美食推荐管理模式的改进却是一项比较繁杂的工作,因此,管理人员要充分发挥信息化管理的作用,提高美食推荐系统的整体管理能力和整体素质。

在科技飞速发展的今天,美食推荐管理体系已全面更新,管理体系的更新,不但能让用户享受到更为高品质的服务,同时也能提升美食推荐管理的工作效率。通过管理上的便利,使管理上也更加有序。然而,当前大多仍采用大规模的人工管理方式,这种管理方式耗费了较多的人力物力,而且很难维持。而本系统要采用一种易于使用、处理速度快、计算准确且适应的服务需求的经营模式。这种新型的经营管理体系将有助于今后的发展,改进当前的经营状况,提升用户的工作效率,同时为美食推荐管理创造更在的效率。

1.2社会调查

较好的线上管理软件,能根据用户的需求,开发不同的产品提供用户使用,还可根据客户实际需求做调整或是二次开发。所以希望能通过调研来收集更多信息,完善自己的软件系统。

不同机构所使用的软件都不一样,但软件程序十分相似,在本次调研中,我以中美健身的佳成软件作为主要调研对象。佳成软件一般有C/S,B/S两种构架。C/S构架即Client/Server结构,用户将服务器安装在本地,其他机器以安装客户端的形式连接服务器,以实现数据同步。B/S构架全称为Browser/Server。B/S构架的产品就是把服务器放在互联网上,使用者通过浏览网页来使用系统。选择B/S构架的美食推荐的所有数据都会通过互联网的服务器来保存。B/S构架不需要安装,拥有一个浏览器即可访问,面向范围以更广。维护也足够简单,更新页面,即可实现面对所有用户的更新,因此也更适合用户。

据调研了解,佳成软件主要运用的VS和SQL两种开发工具。

VS是领先于业内的数据库工具,应用程序可体现行业需求,而这些需求是由最了解它们的个别专家定义的,因而使工程更加完美。它有高效的体系结构指导,客户可使用业界标准方法来表达应用程序的体系结构和功能,提高开发团队的效率。

SQL是一种应用广泛的数据库管理系统,具有许多显著的优点,如:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等适用于大型或超大型数据库服务器端。

经调研发现,该软件主要优点在于强大而方便的功能,减轻了工作负担。但也仍有不足之处,如部分系统操作过于复杂,数据导入容易搞混,导致信息查询失败。而这些也恰恰是目前大部分美食推荐系统的通病。

1.3研究意义

开发美食推荐系统,不仅可以改善用户查看信息难的局面,还可以提供管理效率,同时也可以增强系统的竞争力。利用美食推荐系统的可以有效地提高系统的人事的效率和信息化水平,快速了解信息更新及服务的进度。这既可以确保系统服务的品质,又可以降低管理者的工作压力。

1.4研究内容

美食推荐系统主要分为用户界面、管理员界面和厨房界面。

用户可以查看到首页、美食、美食资讯、留言板、购物车、个人中心等功能

管理端主要功能为系统首页、个人中心、用户管理、美食管理、美食分类管理、预约选座管理、厨房管理、厨房订单管理、留言板管理、系统管理、订单管理等功能。

厨房端主要功能为系统首页、个人中心、厨房订单管理等功能。

第二章 关键技术介绍

2.1 Python语言

Python不仅可以取代NCL,还可以实现NCL不具备的许多功能,极大地改善了用户体验,这已成为未来的趋势。与Highcharts和eCharts等Web前端可视化工具相比,Python在数据可视化领域更为专业。

Python目前支持使用第三方库,如netCDF4、Numpy、Matplotlib、Canopy和Xarry,以解析和可视化NetCDF格式的数据,从而使Pythone易于处理数据。

2.2 Django框架

Django用Python编写,属于开源Web应用程序框架。采用(模型M、视图V和模板t)的框架模式。该框架以比利时吉普赛爵士吉他手詹戈·莱因哈特命名。该架构的主要组件如下:

1.用于创建模型的对象关系映射。

2.最终目标是为用户设计一个完美的管理界面。

3.是目前最流行的URL设计解决方案。

4.模板语言对设计师来说是最友好的。

5.缓存系统。

2.3 MySQL数据库

数据库在软件项目中扮演着操作管理数据的角色同时还能够保证数据的独立性、一致性和安全性,并为系统访问数据提供有效方式不仅如此数据库还能大大减少程序员开发程序时间。在日常能够接触实用的一般有两类数据库,一类是以(Oracle,DB2,SQL Server,MySQL )为代表的关系型数据库和以(NoSql、MongeDB)为代表的非关系型数据库,两类数据库各有各的优缺点。其中非关系型数据库又分为网络数据库和层级数据库。网络数据库是指在计算机网络系统中应用数据库技术然后借助网络技术将存储于数据库中的大量信息及时发布出去;在成熟的数据库技术的帮助下,计算机网络实现了对网络中的各种数据的有效管理,用户与网络中的数据库数据交互也借此得以进行。IMS也是最早研制成功的数据库系统。关系数据结构、关系操作集合、关系完整性约束构成了关系模型。作为数据库另外一种区分方式的存储介质被大家分为磁盘和内存这 两种。例如:关系型数据库就存储在磁盘中,非关系型数据库则存储在内存中。典型的关系型数据库有:Oracle、DB2、MicrosoftSQL Server、Microsoft Access、MySQL、SQLite。小型关系型数据库:Microsoft Access,SQLite;中型关系型数据库:SQL Server,MySQL;大型关系型数据库:Oracle,DB2。

大家常用的其他关系形数据库系统大多是MySQL AB公司开发的,其中MySQL也是由这家开发的,所应用的分布式数据库管理系统是客户机/服务器体系结构得益于此结构,而且用这个系统建造的数据库具有很强的适用性,用C和C++编写的系统让他拥有很强的适用性所以他可以在大部分操作系统上使用并能和php结合。不同的API函数针对不同的语言(C,C++,JAVA等)来处理不同数据;为了更好地支持多CPU多线程通过使用核心线程来实现;提供的存储机制分为事务和非事务存储机制;MySQL采用双重许可,不管是从MySQL AB公司获得正式的商业许可又或是许可条款下以免费软件或开放源码软件的方式使用MySQL软件都是被允许的。

MySQL作为数据库拥有很多优点,其中由于是开放源码,所以使用成本特别低,而它体积小的特点决定了速度快的特性。因此,MySQL具有开放性,多线程支持多种API,可跨数据库连接,国际化,数据库体积巨大等特点。简单的来说,MySQL是一个开放的、快速的、多线程的、多用户的数据库服务器。

选用MySQL作为数据库的其中一个原因就是支持多线程,支持多线程的特点为利用系统资源提供了便捷并因此大大提高了系统运行速度和效率,而且连接数据库的方式多样包括但不局限于TCP/IP、ODBC和JDBC等途径;但是没有东西是完美无缺的,即便MySQL也如此,虽说它有着众多优点但其功能不够强大,规模也相对较小,无法应对大型数据哭的处理。但是对于本系统来说,选用MySQL作为数据库,其功能性能已绰绰有余,如果要进行二次开发的数据库表结构空间的扩展也是完全可行的。综上所述,MySQL是作为本系统数据库的最优选择。

2.4 B/S架构

B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作[10]。

B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:

(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。

(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。

第三章 系统分析

进行美食推荐系统的开发,首先需要进行系统需求分析。对管理员、厨房和用户需求进行调研,接着设计系统的体系构造和数据库表构造,确定使用的开发工具和后台数据库。

系统分析的重点是对管理员、厨房和用户的需求进行相关分析,包括对系统的需求进行分析。在系统的分析中,要介绍目前系统的运行过程,并对目前的系统的问题进行分析,给出业务需求,且一并给出相应的解决方案,然后将其应用于平时的管理之中。

3.1业务需求分析

首先,对现在业务需求进展描述。当前,我国大部分企业普遍存在着资本规模小、人员素质差、管理不规范等问题,基本停留在人工录入的阶段。因此不可避免地导致了管理过程的低效,且易出现错误。然而,在网络上出现的各种美食推荐系统,往往都是费用很高,因为操作过于繁琐,对于一般美食推荐管理来说,使用起来比较困难。在互联网蓬勃发展的今天,在平时的管理中涉及到的各类业务信息也变得复杂起来,面对不断增长的信息量,利用MIS提高工作效率是非常有必要的,因此,制定一套专用的美食推荐系统就是一个很好的办法。利用美食推荐系统进行信息的处理,具有传统的人工记录所不能比拟的优势,它可以实现对数据的规范化,同时也可以对进度进行科学的统计,并快速地查找,从而到达提高工作效率、服务质量的目的。本文在对美食推荐管理的实践中,提出了实现工作信息化的必要性。

易于操作;快速反应;准确的记录和方便的操作是评价一个系统服务质量的重要指标,它可以提高服务质量,并让用户迅速得到以下有关的信息。

  1. 使用不便。
  2. 信息管理复杂。

3.效率低,安全性及准确率不够。

本文在对上述问题进行归纳和剖析后,针对上述问题,给出了相应的改进措施:利用MySQL数据库技术,将美食推荐信息存储在预先设定的相应的数据表单中,并利用程序技术进行信息的分类处理,从而达到可以动态地更改信息的目标。管理员、厨房和用户只要搜索一下关键字,就能找到所需要的信息。管理员、厨房和用户只要提交相应的要求,就能得到相应的反馈。运用电脑技术和数据库技术,极大地提高了的工作质量,为管理员和用户提供了便利。

3.2系统的非功能需求分析

根据近年来学校的发展情况,结合文献资料,对美食推荐管理的信息化;至此,开发具有一定的技术可行性和安全性。

该系统的核心内容是对系统首页、个人中心、用户管理、美食管理、美食分类管理、预约选座管理、厨房管理、厨房订单管理、留言板管理、系统管理、订单管理模块的管理。有关的美食推荐系统规定如下:

(1)可行性:该体系应具有可行性,并与美食推荐管理相适应。

(2)完整:功能模块可以满足系统的要求。

(3)简单:使用简单,维修简单。

(4)安全:安全的系统。

3.3系统可行性分析

3.3.1 技术可行性

该平台采用python技术,而Eclipse则是利用MySQL进行数据库的选择,在数据库的开发中,SQL是最高效、最简洁的,在这个体系中,Eclipse是最安全、最稳定的。由于它的使用方便,无论是开发者,还是管理员,都可以轻松地使用它们。综合来看,解决技术上的问题是切实可行的。

3.3.2 经济可行性

针对本系统而言,需要一系列的硬软件支持,主要硬软件及相关费用如下:需要CPU为400MHz及以上的处理器的计算机,硬盘空间为100M及以上即可,除此之外,相关的设备的安装工作都比较简单,并且设计开发软件的本钱也不高,都相比照较简单,所以只需要对客户进展相关的提示工作便可以让其成功地使用本系统,故本系统的本钱是非常低的。综上所述,本系统在经济上也是可行的。

3.3.3 操作可行性

在美食推荐系统方面,目前已经有许多成功的美食推荐管理信息化系统在支撑系统的运作。就本系统而言,操作简捷,适合大部分用户使用。无论是对业务过程的系统的处理,还是对工作人员的系统的运用,都能够很好地适应系统的正常运作需求。综上所述,本系统在操作上也是可行的。

3.4 系统用例分析

美食推荐系统综合网络空间开发设计要求。目的是将系统传统管理方式转换为在网上管理,完成信息管理的方便快捷、安全性高、交易规范做了保障,目标明确。美食推荐系统可以将功能划分为管理员功能、厨房功能和用户功能。

(1)、管理员用例如下:

(2)、厨房用例如下:

图3-2 厨房用例图

(3)、用户用例如下:

图3-3 用户用例图

3.5 系统流程分析

3.5.1 登录流程

每个用户都有专属的密码和账号,在输入合法的账号和密码之后即可进入系统。登录流程如图3-4所示:

图3-4登录流程图

3.5.2 添加信息流程

管理层人员有添加信息功能。添加信息流程如图3-5所示:

图3-5添加信息流程图

3.5.3 删除流程

用户可以选择把自己发布的信息删掉,选择要删除的信息确认之后,删除信息的操作就完成了。删除信息流程图如图3-6所示。

图3-6删除信息流程图

第四章 系统设计

4.1系统的框架设计

该体系结构将以MVC模型作为体系结构,其体系结构上将其划分为三个层次:表示级、服务级、数据库级。采用MVC模型的思路,实现了各个业务的分离,实现了多个功能的高内聚和低耦合。在代码编写中,对通用代码、相同逻辑代码进行精化和包装,以提升代码使用效率,并使代码逻辑更为清楚。

1.表示层:网页浏览器是展示层面的主体,使用者可以透过网页浏览进入该网页。利用python技术在前端网页中的应用,通过Ajax技术来与后台的业务服务进行交互,以满足网页的局部动态改变。

2.逻辑层:当系统使用者在进入该体系之后,能够在该层呼叫该业务的业务函数界面。

3.数据库:该系统使用MySQL实现对数据的持久性管理,为了实现数据的标准化、简化和快速的存储,将会引进MybatisORM持久性架构。

4.2系统功能模块设计

美食推荐系统在设计与实施时,采取了模块性的设计理念,把相似的系统的功能整合到一个模组中,以增强内部的功能,减少各组件之间的联系,从而达到减少相互影响的目的。

后台主要包括系统首页、个人中心、用户管理、美食管理、美食分类管理、预约选座管理、厨房管理、厨房订单管理、留言板管理、系统管理、订单管理等功能。系统总体功能结构图如图4-1所示。

图4-1 系统总体功能结构图

4.3 数据库设计

4.3.1数据库概念设计

概念模型用于独立于指定的数据库管理系统对信息世界进行建模。方便将现实世界中的实际事物抽象出来,形成适合数据库管理系统的数据库模型。人们倾向于将现实世界抽象为信息世界,再将信息世界抽象为机器世界。也就是说,首先将现实世界中的目标抽象为一个独立于专用计算机软件和专用数据库管理系统的信息结构,而是一个数据模型,然后将实体模型在电子计算机上转化为一个适用于数据库管理系统的数据库系统。事实上,数据模型是介于现实世界和机器世界之间的一个层次。信息世界的基本要素包含实体和关联。

实体(entity) 客观存在并可相互区别的事物称为实体。实体可以是实际的人、事或物,还可以是抽象化的概念或联络。主要的实体属性图如下图所示:

美食评论实体属性如图4-2所示。

用户实体属性如图4-3所示。

图4-3用户实体属性图

预约选座实体属性如图4-4所示。

图4-4预约选座实体属性图

余额实体属性如图4-5所示。

图4-5余额实体属性图

美食资讯实体属性如图4-6所示。

图4-6美食资讯实体属性图

4.3.2 数据库表设计

在本系统中,采用的是目前比较主流的MySQL数据库,并且设计了几个数据表如下所示:

表4-1:美食分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

meishifenlei

varchar

200

美食分类

表4-2:美食

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

caiming

varchar

200

菜名

meishifenlei

varchar

200

美食分类

kouwei

varchar

200

口味

hunsu

varchar

200

荤素

tupian

longtext

4294967295

图片

zhuliao

varchar

200

主料

jianjie

varchar

200

简介

thumbsupnum

int

0

crazilynum

int

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值