自学内容网 自学内容网

【源码+文档+调试讲解】美食推荐系统Python

  要

随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决生活上的问题,豆果美食推荐系统展现了其蓬勃生命力和广阔的前景。与此同时,为解决用户需求,豆果美食推荐管理发展愈发多元化与网络化,与电子信息技术相结合。豆果美食推荐系统应运而生。

该系统利用Python语言、MySQL数据库,Django框架,结合目前流行的 B/S架构,将豆果美食推荐系统的各个方面都集中到数据库中,以便于用户的需要。该系统在确保系统稳定的前提下,能够实现多功能模块的设计和应用。该系统由管理员功能模块和用户功能模块组成。不同角色的准入制度是有严格区别的。各功能模块的设计也便于以后的系统升级和维护。该系统采用了软件组件化、精化体系结构、分离逻辑和数据等方法。

关键字豆果美食推荐系统;Python语言;MySQL数据库;Django框架;

Abstract

With the rapid development of China's economy and the increasing improvement of people's living standards, people's pursuit of quality of life is also diverse. Especially in the current era where people's pace of life is constantly accelerating, they tend to solve problems in their daily lives without leaving their homes. The bean and fruit food recommendation system has shown its vigorous vitality and broad prospects. At the same time, in order to meet user needs, the development of book sales management is becoming increasingly diversified and networked, combined with electronic information technology. The bean and fruit food recommendation system has emerged.

The system utilizes Python language, MySQL database, Django framework, and the popular B/S architecture to consolidate all aspects of the bean and fruit food recommendation system into the database, in order to meet the needs of users. The system can achieve the design and application of multifunctional modules while ensuring system stability. The system consists of an administrator function module and a user function module. There are strict differences in the admission systems for different roles. The design of each functional module also facilitates future system upgrades and maintenance. The system adopts methods such as software componentization, refined architecture, and separation of logic and data.

Keywords: Bean and fruit food recommendation system; Python language; MySQL database; Django framework; 

目 录

目  录

1绪  论

1.1开发背景

1.2开发目的与意义

1.2.1开发目的

1.2.2开发意义

1.3本文研究内容

2开发技术

2.1 Python语言

2.2 MySql简介

2.3 Django框架

2.4 B/S架构

3系统分析

3.1可行性分析

3.1.1技术可行性分析

3.1.2经济可行性分析

3.1.3法律可行性分析

3.2系统性能分析

3.3功能需求分析

3.4系统流程分析

4系统设计

4.1功能模块设计

4.2数据库设计

4.2.1数据库设计原则

4.2.2系统E-R图

4.2.3数据库表设计

5系统实现

5.1 前台用户功能模块 17

5.2 后台管理员功能模块 21

5.3 看板展示 21

6系统测试

6.1系统测试内容

6.1.1登录测试

6.1.2角色测试

6.1.3性能测试

6.2测试用例执行结果

结  论

参考文献

致谢

1绪  论

1.1开发背景

改革开放以来,中国社会经济体系复苏,人们生活水平稳步提升,中国社会已全面步入小康社会[1]。同时也在逐渐转型,具有生活的现代化和劳动的社会化等特点。这不仅基于人们过快的工作节奏与生活方式,也是源于人们对于生活品质越来越严苛的要求。如何从工作压力与生活压力中得到解放,是现代人追求的永恒话题。

单从工作压力来讲,豆果美食推荐管理在很大程度上可以解决一部分问题,逐渐进入人们的视野。豆果美食推荐管理采用的手工记录信息的方式,给管理者管理工作造成很大的困难。这也充分说明了传统的信息处理方式已经很难适应现代管理系统的需要[2]。

近年来,随着计算机技术的飞速发展以及其在全球范围内的普及,计算机技术的在人们生活中应用的占比越来越大,尤其是信息资源管理方面,广泛应用于各个行业,已经产生了不可估量的社会效益。计算机技术在信息资源管理方面的应用大大提高了工作效率,简化了工作程序,改善了服务质量。而这些特点正好对豆果美食推荐管理的难题对症下药。豆果美食推荐系统一经问世,就展现了其巨大的发展前景与优势。电子信息技术与豆果美食推荐管理的结合,使得用户足不出户就可以在系统上操作,符合人们现代生活方式发展;这种结合也对豆果美食推荐管理模式的变革也起到了决定性的作用,可以实现豆果美食推荐管理信息一次录入,永久使用的便捷,关键词输入即可将用户需求进行匹配,达到客户需求最快最优实现的理想。然后这种模式更加节省成本,无论是纸质文字的录入和保存,还有人工的费用都为豆果美食推荐管理的资本积累以及变革提供了保障。因此可以看出,豆果美食推荐管理网络化,不仅大大提高了本行业的工作效率,简化工作方式,更是一场豆果美食推荐管理的深刻变革[3]。

1.2开发目的与意义

1.2.1开发目的

近年来,豆果美食推荐管理发展迅猛,在拥有广阔发展前景的同时,也面临着许许多多的问题。

我国线上管理起步晚,但发展快速,从业人员激增,多见于传统管理模式,管理体系不规范、不标准。且企业虽然多但规模普遍偏小,很难在市场形成有效的诚信经营的形象与品牌[4]。

我国目前存在的线上管理监管制度缺失、市场监管不规范等问题。由于缺乏专业人士的素质和服务品质的明确测量,导致线上管理内部鱼龙混杂,难以获得顾客的信赖。

豆果美食推荐系统是电子、信息技术相结合,是一种必然的发展趋势。以互联网为基础,以服务于广大用户为目的,发展整体优势,扩大规模,提升服务质量,提高信息化的管理效率。豆果美食推荐系统实现了向现代化和网络化的转型,为管理决策和控制提供保障,这是豆果美食推荐管理发展中里程碑式的转型[5]。

1.2.2开发意义

对于软件平台来说,系统的建设大大节省了管理成本和人工成本,增强用户信息安全建设,是软件平台实现管理现代化的有效途径,同时促进软件平台管理更加专业化和网络化。

对于用户来说,建立豆果美食推荐管理体系不仅丰富了网络化模式,还能刺激各行业进行自我改革,促使其专业性和规范性的提高。这是豆果美食推荐管理良性循环发展的里程碑[6]。

1.3本文研究内容

首先,要掌握有关系统的基本理论,如 Python语言、 MySQL数据库等,并对其进行全面的分析。为了给系统打下坚实的技术基础,本系统采用了 MySQL数据库的架构,在开始这项工作前,首先要设计好要用到的数据库表。该系统的使用者有二类:管理员和用户,主要功能包括个人信息修改,用户、菜谱信息、配料信息、美食信息等管理功能[7]。

2开发技术

2.1 Python语言

Python是解释型的脚本语言,在运行过程中,把程序转换为字节码和机器语言,说明性语言的程序在运行之前不必进行编译,而是一个专用的解释器,当被执行时,它都会被翻译,与之对应的还有编译性语言。

同时,这也是一种用于电脑编程的跨平台语言,这是一门将编译、交互和面向对象相结合的脚本语言(script language)。

可以说其优点也是非常的突出,下面就其优点进行具体的说明:

(1)首先它是一种比较简单易学的,而且对初学者来说也是非常容易上手的一种语言,与其他的语言相比较在进行编写和阅读的时候,会更加接近人的思维模式,非常的适合用户的阅读性和易于理解的特点。

(2)由于其底层的逻辑是用c语言完成的,所以在运行的速度来说也是非常快的,就如许多的开发者所了解的,它的很多的标准库以及第三方的依赖都是由c语言所开发的,所以执行起来比较高效率。

(3)并且,它始终是一个面向对象的程序设计,它支持面向过程和面向对象的编写,在以流程为导向的语言里,一个程序是建立在一个过程或者一个简单的可重复使用的代码的功能上,在面向对象中,一个程序是以数据和函数为基础的对象构造的。 

(4)如果需要代码的扩充或者是快速查看,在使用它的时候格式也是非常的清晰,还有便于维护的特点,在不同的开发人员共同开发的过程中,都会比较方便的理解所编写的内容。

(5)同时也是因为它开源的特点,能够被移植到很多的平台进行使用,并且它也是完全支持重载、派生、继承等有助于增强代码的复用的特点,同时有两个标准库(functools, itertools)提供了开发的支持。

2.2 MySql简介

MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了用户的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。基于Python豆果美食推荐系统运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用。

2.3 Django框架

Django由 Python写成,框架采用了MVT,模型和视图以及模板。将python中一些繁琐的步骤打包,更快速的调用,大大减少了开发时间。

2.4 B/S架构

B/S(Browser/Server,浏览器/服务器)模式,是一种架构模式,属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上。它使客户端得到了统一,服务器上集中了系统功能的最关键部分。

B/S架构的工作模式是浏览器发出请求后服务器进行相应的响应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。在Web服务器上下载程序时,如果在下载过程中遇到某些与数据库相关的指令,可以将这些指令交给数据库服务器来解释、进行执行。B/S架构工作流程图如2-1所示:

图2-1 B/S架构工作流程图

3系统分析

需求分析是研发人员经过调研和分析后准确理解用户需求,确定系统需要具备的功能。然后对系统进行可行性和功能分析,确保符合豆果美食推荐系统的实现价值,对后续的系统创建有显著的帮助[8]。

3.1可行性分析

3.1.1技术可行性分析

基于B/S架构开发的豆果美食推荐系统,技术方面应用了目前市面上比较主流的web三大框架,分别是 Django、Hibernate、struts2,数据库采用mysql,PyCharm作为开发工具,这些技术非常的成熟,在市面上有非常多成熟使用的案例,从技术角度是没有问题的,并且在学校的学习中对于这些技术就会有了一定的掌握,开发过类似的项目[9]。

3.1.2经济可行性分析

豆果美食推荐系统大都是区域性的管理,系统中维护的范围不会非常大,因此数据并发量不会非常高,在数据并发量不是很高的情况下,系统的资源配置相对较低,用户所需要的客户端普通的电脑即可胜任。并且豆果美食推荐系统的管理系统还会提高效率减少纸质物品的使用,节约纸质资源。避免很多的人力消耗和资源浪费。从系统的开发角度分析,此次项目的开发软件全部都是开源且免费的。不需要在开发中投入经济成本,只需要专注于开发的内容即可,不会产生相应的开发费用。系统稳定使用后系统不会有过多的运维成本,投入使用后会在实际工作中发挥出重要的作用。

3.1.3法律可行性分析

豆果美食推荐系统是自己独立设计的,该系统是本人开发出来做毕业设计之用,并不会侵犯他人、集体和国家的利益。该系统使用正版软件开发,所有参考资料都是正规网站查询分析得出,开发的技术完全是开源免费的工具,百分百遵守国家法律法规。不会出现任何违反国家的政策和法律的[10]。

3.2系统性能分析

  1. 系统安全性

豆果美食推荐系统中,系统的安全性要有一定的保障,不仅要保证系统数据存储足够安全,还要保障数据传输过程安全,还要保证对用户权限管理是合理的。保证一些意外情况发生,导致系统数据缺损时,会有历史数据备份对数据进行还原。

  1. 可维护性和适应性

世界是在不断进步的,互联网也在不断发展,随着行业发展,对豆果美食推荐系统可能会产生新的需求,好的系统应该具有可扩展性,无论在现在还是未来,都能够满足用户需求,可以长期使用本豆果美食推荐系统。

  1. 可靠性

豆果美食推荐系统在发展进步,用户人数越来越多,到时候系统的访问量就会比现在多很多,豆果美食推荐系统要足够可靠,能够在并发量高的情况下,依旧保持优越的运行速度、容错能力[11]。

3.3功能需求分析

系统的目标是为管理员和用户搭建一个网上沟通平台,保证双方的安全,并使双方的利益最大化。

3.3.1管理员需求分析

管理员端的功能主要是开放给系统的管理人员使用,能够对用户的信息进行管理,包括对用户、菜谱信息、配料信息、美食信息、留言板等信息进行查看,修改和删除、新增等,对系统整体运行情况进行了解。

管理员用例分析图,如图3-1所示。

图3-1管理员用例分析图

3.3.2用户需求分析

用户的功能主要是对个人账号和密码进行更新管理,对首页、菜谱信息、配料信息、美食信息、美食资讯、留言板、个人中心进行查询详情操作。

用户用例分析图,如图3-2所示。

图3-2用户用例分析图

3.4系统流程分析

在本系统,非本系统的用户要想进行豆果美食推荐系统就要注册本系统,登录时需要填写相应的资料,如有使用者,则会显示使用者名称已经存在,请再次键入使用者名称的提示框,若使用者不存在,则填写密码、确认密码等资料,并由系统判定密码与确认密码相符,确认无误后,填写使用者所填写的资料,即可进行登记。而且,为了保证系统的安全,只有在登录了本系统以后,才能进入系统后台操作。该系统的工作流程见图3-3。

图3-3 程序流程图

4系统设计

4.1功能模块设计

对本系统进行全面的系统功能的分析,可以得出基于Python豆果美食推荐系统的功能模块图,如图4-1所示。

图4-1 系统功能模块图

4.2数据库设计

4.2.1数据库设计原则

要学习程序设计,如果你想了解数据库管理系统或根据要求开发的系统接口,你必须创建一个数据库管理系统模型来存储数据。这样,当您在应用程序编程过程中,就不需要将信息加载到操作系统页面,从而提高整个系统的工作效率。信息库管理系统中存储着许多数据,应该说是管理信息系统建设的中心和基础。信息库管理系统还为管理信息系统的建设提供了添加、删除、更改和搜索的操作功能,使管理信息系统建设能够快速查询所需的数据,而不是直接从程序代码中查找。信息库管理系统通过按照特定的方法将信息表的各个组成部分组合起来,准确地组合、分类并构成信息库管理体系。

4.2.2系统E-R图

本毕业设计的E-R图描述了在系统中各个实体之间的联系,以下是对部分主要的关键实体E-R如下:

美食信息实体E-R图如下图4-2所示。

图4-2美食信息实体E-R图

留言板实体E-R图如下图4-3所示。

图4-3留言板实体E-R图

配料信息实体E-R图如下图4-4所示。

图4-4配料信息实体E-R图

用户信息实体E-R图如下图4-5所示。

图4-5用户信息实体E-R图

豆果美食推荐系统总体E-R图如下图4-5所示。

4.2.3数据库表设计

豆果美食推荐系统的数据以一个个数据表的方式存储在数据库中,这一个个数据表示系统调取数据的基础,在进行系统数据库搭建时,会根据这些设计好的数据表进行优化搭建。系统选用MySQL数据库,对各表进行了详细的说明如下:

表4-1:菜谱信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-2:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

url

varchar

500

url

表4-3:系统简介

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-4:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-5:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

image

varchar

200

头像

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-6:配料信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

peiliaomingcheng

varchar

200

配料名称

peiliaofenlei

varchar

200

配料分类

tupian

longtext

4294967295

图片

faburiqi

date

发布日期

cailiaoxiangqing

longtext

4294967295

材料详情

thumbsupnum

int

0

crazilynum

int

0

discussnum

int

评论数

0

storeupnum

int

收藏数

0

表4-7:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-8:美食资讯分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

typename

varchar

200

分类名称

表4-9:美食资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

typename

varchar

200

分类名称

name

varchar

200

发布人

headportrait

longtext

4294967295

头像

clicknum

int

点击次数

0

clicktime

datetime

最近点击时间

thumbsupnum

int

0

crazilynum

int

0

storeupnum

int

收藏数

0

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-10:ncl04r3f_meishixinxi

功能:

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

0

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

name

varchar

200

菜谱名

picture

longtext

4294967295

图片

author

varchar

200

发布人

view

int

浏览量

collect

int

收藏量

metarial

longtext

4294967295

用料

step

longtext

4294967295

做法

tips

longtext

4294967295

技巧

xqdz

longtext

4294967295

详情地址

表4-11:留言板

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

content

longtext

4294967295

留言内容

cpicture

longtext

4294967295

留言图片

reply

longtext

4294967295

回复内容

rpicture

longtext

4294967295

回复图片

表4-12:美食信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

name

varchar

200

菜谱名

picture

longtext

4294967295

图片

author

varchar

200

发布人

view

int

浏览量

collect

int

收藏量

metarial

longtext

4294967295

用料

step

longtext

4294967295

做法

tips

longtext

4294967295

技巧

xqdz

longtext

4294967295

详情地址

表4-13:配料信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-14:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuzhanghao

varchar

200

用户账号

mima

varchar

200

密码

yonghuxingming

varchar

200

用户姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

nianling

int

年龄

shouji

varchar

200

手机

youxiang

varchar

200

邮箱

dizhi

varchar

200

地址

表4-15:菜谱信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

meishimingcheng

varchar

200

美食名称

caipufenlei

varchar

200

菜谱分类

yuancailiao

varchar

200

原材料

peiliaomingcheng

varchar

200

配料名称

tese

varchar

200

特色

meishitupian

longtext

4294967295

美食图片

zhizuoshipin

longtext

4294967295

制作视频

jianjie

longtext

4294967295

简介

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

zhizuofangfa

longtext

4294967295

制作方法

thumbsupnum

int

0

crazilynum

int

0

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

discussnum

int

评论数

0

storeupnum

int

收藏数

0

表4-16:菜谱分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

caipufenlei

varchar

200

菜谱分类

源码获取

点此获取


原文地址:https://blog.csdn.net/2401_84408400/article/details/142528353

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!