基于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

安装步骤

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

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

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.pycsvtosql.py,修改 connection 配置项:

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

创建数据库迁移文件:

bash 复制代码
python manage.py makemigrations

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

bash 复制代码
python manage.py migrate
初始化项目相关数据:

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

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

bash 复制代码
python initialization.py 
启动项目:
bash 复制代码
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. 注销后,您将返回到登录页面。

其他功能

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

源码获取方式

需要成品,加我的时候,记得把本页面标题截图发下我

文章最下方名片联系我即可~

相关推荐
小刘|6 小时前
Redis 中简单动态字符串(SDS)的深入解析
数据库·redis·bootstrap
万能程序员-传康Kk7 小时前
中国邮政物流管理系统(Django+mysql)
python·mysql·django
RunsenLIu9 小时前
基于Django实现的篮球论坛管理系统
后端·python·django
程序员Bears12 小时前
Django进阶:用户认证、REST API与Celery异步任务全解析
后端·python·django
Q_Q196328847513 小时前
python小说网站管理系统-小说阅读系统
开发语言·spring boot·python·django·flask·node.js·php
Mr数据杨15 小时前
【Dv3Admin】Git 子模块在 Dv3admin 插件项目统一管理实践
django
胖哥真不错15 小时前
Python基于Django和MySQL实现突发公共卫生事件舆情分析系统(有大屏功能)
python·mysql·django·突发公共卫生事件舆情分析系统·大屏功能
larance18 小时前
Django rest_framework 信号机制生成并使用token
数据库·django·sqlite
声声codeGrandMaster21 小时前
Django之账号登录及权限管理
后端·python·django