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

基于Django和Bootstrap开发的美食推荐系统

基于Django和Bootstrap开发的美食推荐系统

项目截图





数据来源;https://www.xiaochushuo.com/

项目介绍

该项目基于 DjangoBootstrap 实现,旨在为用户提供个性化的美食推荐。系统通过爬虫抓取美食数据并利用 ECharts 实现数据分析和可视化,帮助用户更直观地了解美食推荐的内容。项目的后端使用 MySQL 数据库进行数据存储,并且通过 Django ORM 进行高效的数据库操作。

系统的主要功能包括:

  • 美食数据的爬取与存储
  • 美食的收藏与评论
  • 美食数据的可视化展示(使用 ECharts)
  • 用户友好的前端展示(使用 Bootstrap)

软件架构

该项目遵循 MTV(Model-Template-View) 架构,其中:

  • Model(模型):负责与数据库的交互,定义数据表的结构。
  • Template(模板):负责展示数据和用户界面,使用 Django 模板语言和 Bootstrap 实现前端。
  • View(视图):处理用户请求,进行数据处理,并渲染相应的模板页面。

具体实现说明:

  • 爬虫:使用 Python 编写爬虫程序抓取美食数据,保存到 MySQL 数据库。
  • 数据分析:通过 ECharts 在前端展示美食数据分析,包括类别分布、用户评价等信息。
  • 后端:使用 Django 提供的 ORM(对象关系映射)技术,进行数据库操作,简化数据库的增删改查。

安装教程

前提条件

在本地机器上安装以下软件:

  • Python 3.x
  • MySQL
  • Git

安装步骤

创建虚拟环境并激活:
python -m venv venv
# 首先确保您的计算机上正确配置python环境变量
venv\Scripts\activate
安装项目依赖包:
pip install -r requirements.txt
配置数据库:

首先创建一个您的数据库,名字任意。

settings.py 中配置 MySQL 数据库连接,修改 DATABASES 配置项(改为您的创建的数据库名称和您的数据库密码):

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_db_name',       # 数据库名称'USER': 'root',               # 数据库用户名'PASSWORD': 'your_password',  # 数据库密码'HOST': 'localhost',          # 本地运行数据库'PORT': '3306',               # mysql默认端口}
}

get_data 文件夹下找到 analysis.pycsvtosql.py,修改 connection 配置项:

connection = pymysql.connect(host='localhost',user='root',password='your_password',db='your_db_name',charset='utf8mb4'
)
数据库迁移:

创建数据库迁移文件:

python manage.py makemigrations

将迁移文件应用到数据库:

python manage.py migrate
初始化项目相关数据:

注意:本步骤只需要在您第一次启动项目时运行,(因为内部代码还没有修改,以后会修改,如果重复运行会导致数据库中的foods表插入重复数据)有个别数据爬取失败并不影响系统最后的使用效果,如果最后终端显示 分析数据成功插入数据库! 则可以继续下一步

爬取相关美食数据并存入数据库,并生成相关分析数据存入数据库:

python initialization.py 
启动项目:
python manage.py runserver 

项目启动成功后在浏览器中访问 http://127.0.0.1:8000/ ,即可查看项目的首页,并开始使用美食推荐系统。

使用教程

本项目是一个基于 Django 和 Bootstrap 实现的美食推荐系统。用户可以通过该系统浏览不同种类的美食,查看推荐的食谱,并通过数据分析图表了解热门美食的趋势。

用户注册与登录

在本系统中,用户的密码并不会以明文形式存储。系统使用 哈希加密 技术(通过 Djangomake_password 函数),确保密码在存储时得到加密处理。具体而言,系统采用 PBKDF2 哈希算法对密码进行加密,该算法经过广泛验证并且适应现代安全要求。这样即使数据库被攻击,用户的密码也不会被泄露。

  1. 打开登录主页,点击左下角的 “注册” 按钮。
  2. 填写用户名、密码和其他必要的个人信息,点击 “注册” 完成注册。
  3. 注册成功后,您将返回登录页面,成功登录后即可进入系统(请牢记您的密码,数据库中储存的并不是明文密码,无法查看)。

修改个人信息

  1. 登录后,点击右上角的 “个人资料”,进入个人信息页面。
  2. 在该页面,您可以修改您的个人信息,如用户名、密码等。

美食相关

  1. 您可以进入美食列表相关页面查看美食,也有基于地方菜名的简单筛选。
  2. 您可以点击喜欢的美食进入美食详情页,在详情页用户可以发表自己的评价,也可以将美食加入收藏。
  3. 系统还有针对每个用户的收藏夹,在这里您可以看见您所收藏的美食,方便管理。

数据分析

  1. 在相关的分析,您将看到基于 ECharts 实现的美食数据分析图表。
  2. 这些图表展示了不同类型美食的受欢迎程度、评论量、收藏量等数据,让您可以更直观地了解美食的趋势。

注销

  1. 如果您想退出系统,可以点击右上角的 “退出” 按钮。
  2. 注销后,您将返回到登录页面。

其他功能

系统提供了搜索功能,支持您对自己喜欢的菜肴进行检索,检索范围不局限于菜名也包括具体描述。

源码获取方式

需要成品,加我的时候,记得把本页面标题截图发下我
文章最下方名片联系我即可~

相关文章:

  • 函数级重构:如何写出高可读性的方法?
  • 探讨关于智能体(Agent)结合 Dify、大语言模型(LLM)以及 Qwen-3 模型的项目或概念
  • VNC windows连接ubuntu桌面
  • Linux——Mysql数据库
  • 安全可控·高效响应|北峰智能互通矿业通信系统解决方案
  • 记录 iframe 跨域通信及安全配置
  • MariaDB 与 MySQL 的关系:从同源到分道扬镳
  • 二叉树的基本操作
  • 浅谈 Shell 脚本编程中引号的妙用
  • Logback官方文档翻译章节目录
  • conda创建一个新环境,指定环境的存储位置,而不是默认值地址
  • KAXA凯莎科技AGV通信方案如何赋能智能仓储高效运作?
  • [Linux]在源代码数量优化中统计源文件数量,目标文件数量的一点作用
  • 科技成果鉴定测试有哪些内容?又有什么作用?
  • 【文档智能】开源的阅读顺序(Layoutreader)模型使用指南
  • Spark缓存
  • Opencv进阶操作:图像拼接
  • 如何通过服务主体获取 Azure 凭据
  • BGP基础
  • vscode如何使用 GitHub Copilot
  • 马克思主义理论研究教学名师系列访谈|曾瑞明:想通了才可能认准,认准了才能做好
  • 特色业务多点开花,苏州银行擦亮金融为民底色
  • 美联储主席:美联储工作方式不会受特朗普影响,从未寻求与总统会面
  • 百济首次实现季度营业利润扭亏,泽布替尼销售额近57亿元
  • 湖南张家界警方公告宣布一名外国人居留许可作废
  • 印观察|印巴战火与莫迪政府三重冒险:南亚火药桶已至临界点