# 基于Django+Bootstrap实现的美食推荐系统 **Repository Path**: Le2hanG/Food-Recommend-System ## Basic Information - **Project Name**: 基于Django+Bootstrap实现的美食推荐系统 - **Description**: 该项目基于 Django 和 Bootstrap 实现,旨在为用户提供个性化的美食推荐。系统通过爬虫抓取美食数据并利用 ECharts 实现数据分析和可视化,帮助用户更直观地了解美食推荐的内容。项目的后端使用 MySQL 数据库进行数据存储,并且通过 Django ORM 进行高效的数据库操作。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 1 - **Created**: 2024-11-16 - **Last Updated**: 2025-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 Django + Bootstrap 实现的美食推荐系统 ## 项目介绍 该项目基于 **Django** 和 **Bootstrap** 实现,旨在为用户提供个性化的美食推荐。系统通过爬虫抓取美食数据并利用 **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 ### 安装步骤 #### 1. 克隆本项目: ```bash git clone https://gitee.com/Le2hanG/Food-Recommend-System.git ``` ```bash cd Food-Recommend-System ``` #### 2. 创建虚拟环境并激活: ```bash python -m venv venv # 首先确保您的计算机上正确配置python环境变量 ``` ```bash venv\Scripts\activate ``` #### 3. 安装项目依赖包: ```bash pip install -r requirements.txt ``` #### 4. 配置数据库: 首先创建一个您的数据库,名字任意。 在 `settings.py` 中配置 MySQL 数据库连接,修改 `DATABASES` 配置项(改为您的创建的数据库名称和您的数据库密码): ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_db_name', # 数据库名称 'USER': 'root', # 数据库用户名 'PASSWORD': 'your_password', # 数据库密码 'HOST': 'localhost', # 本地运行数据库 'PORT': '3306', # mysql默认端口 } } ``` 在 `get_data` 文件夹下找到 `analysis.py` 和 `csvtosql.py`,修改 `connection` 配置项: ```python connection = pymysql.connect( host='localhost', user='root', password='your_password', db='your_db_name', charset='utf8mb4' ) ``` #### 5. 数据库迁移: 创建数据库迁移文件: ```bash python manage.py makemigrations ``` 将迁移文件应用到数据库: ```bash python manage.py migrate ``` #### 6. 初始化项目相关数据: **注意:本步骤只需要在您第一次启动项目时运行,(因为内部代码还没有修改,以后会修改,如果重复运行会导致数据库中的foods表插入重复数据)有个别数据爬取失败并不影响系统最后的使用效果,如果最后终端显示 `分析数据成功插入数据库!` 则可以继续下一步** 爬取相关美食数据并存入数据库,并生成相关分析数据存入数据库: ```bash python initialization.py ``` #### 7. 启动项目: ```bash python manage.py runserver ``` 项目启动成功后在浏览器中访问 `http://127.0.0.1:8000/` ,即可查看项目的首页,并开始使用美食推荐系统。 ## 使用教程 本项目是一个基于 Django 和 Bootstrap 实现的美食推荐系统。用户可以通过该系统浏览不同种类的美食,查看推荐的食谱,并通过数据分析图表了解热门美食的趋势。 ### 用户注册与登录 在本系统中,用户的密码并不会以明文形式存储。系统使用 `哈希加密` 技术(通过 `Django` 的 `make_password` 函数),确保密码在存储时得到加密处理。具体而言,系统采用 `PBKDF2` 哈希算法对密码进行加密,该算法经过广泛验证并且适应现代安全要求。这样即使数据库被攻击,用户的密码也不会被泄露。 1. 打开登录主页,点击左下角的 **"注册"** 按钮。 2. 填写用户名、密码和其他必要的个人信息,点击 **"注册"** 完成注册。 3. 注册成功后,您将返回登录页面,成功登录后即可进入系统(请牢记您的密码,数据库中储存的并不是明文密码,无法查看)。 ### 修改个人信息 1. 登录后,点击右上角的 **"个人资料"**,进入个人信息页面。 2. 在该页面,您可以修改您的个人信息,如用户名、密码等。 ### 美食相关 1. 您可以进入美食列表相关页面查看美食,也有基于地方菜名的简单筛选。 2. 您可以点击喜欢的美食进入美食详情页,在详情页用户可以发表自己的评价,也可以将美食加入收藏。 3. 系统还有针对每个用户的收藏夹,在这里您可以看见您所收藏的美食,方便管理。 ### 数据分析 1. 在相关的分析,您将看到基于 ECharts 实现的美食数据分析图表。 2. 这些图表展示了不同类型美食的受欢迎程度、评论量、收藏量等数据,让您可以更直观地了解美食的趋势。 ### 注销 1. 如果您想退出系统,可以点击右上角的 **"退出"** 按钮。 2. 注销后,您将返回到登录页面。 ### 其他功能 系统提供了搜索功能,支持您对自己喜欢的菜肴进行检索,检索范围不局限于菜名也包括具体描述。