毕业设计:python美食菜谱数据分析可视化系统 爬虫+Echarts 可视化 Django框架 大数据(源码+文档2)✅

ops/2024/10/25 10:19:17/

python_Echarts__Django__0">python美食菜谱数据分析可视化系统 爬虫+Echarts 可视化 Django框架 大数据✅

1、项目介绍

技术栈:
Python语言、Django框架、vue框架、Echarts 可视化、MySQL 数据库、豆果美食网、html css js juery
基于django的美食菜谱数据分析可视化系统

2、项目界面

(1)美食菜品数据
在这里插入图片描述
(2)分类可视化前十
在这里插入图片描述

(3)类型可视化前十
在这里插入图片描述
(4)配料分布分析

在这里插入图片描述

(5)菜式分类

在这里插入图片描述

(6)所有配料可视化分析
在这里插入图片描述

(7)作者分布图
在这里插入图片描述
(8)作者分布词云图

在这里插入图片描述

(9)配料分析图

在这里插入图片描述
(10)后台数据管理
在这里插入图片描述

3、项目说明

基于Django的美食菜谱数据分析可视化系统是一个使用Python语言和Django框架开发的Web应用程序。它还使用了Vue框架和Echarts可视化工具来实现数据可视化。

该系统的主要功能是对豆果美食网的菜谱数据进行分析和可视化展示。用户可以通过系统的界面进行菜谱搜索、分类浏览等操作,系统会根据用户的需求从MySQL数据库中获取相应的数据。

系统的前端使用了HTML、CSS、JavaScript和JQuery等技术来实现页面的布局和交互效果。用户可以通过系统的界面进行菜谱搜索、分类浏览等操作。

系统的后端使用了Python语言和Django框架来处理用户的请求,并与MySQL数据库进行交互。系统会根据用户的需求从数据库中获取相应的数据,并使用Echarts可视化工具将数据以图表的形式展示出来。

通过该系统,用户可以方便地进行美食菜谱的数据分析和可视化展示,帮助用户更好地理解和利用菜谱数据。同时,该系统还提供了用户注册、登录、个人信息管理等功能,以及对菜谱的收藏、评论等操作,提升了用户的交互体验。

4、核心代码

python">import uuid
from collections import Counterfrom django.http import HttpResponse, JsonResponse
from django.shortcuts import renderfrom django.views.decorators.csrf import csrf_exempt
from django.db.models import *
from app01 import models
import json
from django.core import serializers# 登陆
def login(request):data = {}res = json.loads(request.body)password = res.get("password")name = res.get("name")print(name, password)use = models.User.objects.filter(name=name).filter(password=password).values()print(len(use))data["login"] = len(use)return JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})# 注册
def zc(request):data = {}res = json.loads(request.body)password = res.get("password")name = res.get("name")print(name, password)zc = 0user = models.User.objects.filter(name=name)if len(user) == 0:uid = models.User(id=uuid.uuid1(), name=name, password=password).save()user = models.User.objects.filter(name=name)print(user)zc = 1data["login"] = zcreturn JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})def home(request):data = {}res = json.loads(request.body)name = res.get("type")img = models.Menu.objects.filter(big_type=name).values("img")[0:5]items = models.Menu.objects.raw('select id, count(type) ,type from menu where big_type = "' + str(name) + '" group by type')item = []for i in items:d = {"label": i.type}item.append(d)data["img"] = list(img)data["items"] = list(item)return JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})def info(request):res = json.loads(request.body)data = {}i = res.get("pageIndex")size = res.get("pageSize")name = res.get("name")big = res.get("value")num = res.get("num")ll = models.Menu.objects.raw("select id, count(big_type) value,big_type name from menu group by  q big_type")if num == '':li = models.Menu.objects.filter(name__contains=name).filter(big_type__contains=big).order_by('type').values()[(i - 1) * size:i * size]total = models.Menu.objects.filter(name__contains=name).filter(big_type__contains=big).values("id").count()else:li = models.Menu.objects.filter(name__contains=name).filter(big_type__contains=big).filter(num=num).order_by('type').values()[(i - 1) * size:i * size]total = models.Menu.objects.filter(name__contains=name).filter(big_type__contains=big).filter(num=num).values("id").count()item = []#(1) MySQL5.5版本用下面的代码# for i in ll:#     d = {"value": i.name, "label": i.name}#     item.append(d)##(2) MySQL5.7以上版本用下面的代码for i in list(li):l = i['peiliao'].split(',')i['num'] = len(l)data["items"] = list(item)data["list"] = list(li)data["total"] = totalreturn JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})def echarts(request):data = {}big = models.Menu.objects.raw("select id, count(big_type) value,big_type name from menu group by big_type order by value desc limit 20")item = []for i in big:d = {"name": i.name, "value": i.value}item.append(d)data["big"] = list(item)type = models.Menu.objects.raw("select id, count(type) value,type name from menu group by type order by value desc limit 50")item = []for i in type:d = {"name": i.name, "value": i.value}item.append(d)data["type"] = list(item)return JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})def echarts1(request):data = {}num = models.Menu.objects.raw("select id, count(num) value,num name from menu group by num order by value desc limit 20")item = []for i in num:d = {"name": i.name, "value": i.value}item.append(d)data["num"] = list(item)type = models.Menu.objects.raw("select id,count(num) value,num name from menu where big_type = '中国菜' group by num order by value desc limit 10")item = []for i in type:d = {"name": i.name, "value": i.value}item.append(d)data["china"] = list(item)wai = models.Menu.objects.raw("select id,count(num) value,num name from menu where big_type = '外国菜' group by num order by value desc limit 10")item = []for i in wai:d = {"name": i.name, "value": i.value}item.append(d)data["wai"] = list(item)ge = models.Menu.objects.raw("select id,count(num) value,num name from menu where big_type = '各地小吃' group by num order by value desc limit 10")item = []for i in ge:d = {"name": i.name, "value": i.value}item.append(d)data["ge"] = list(item)cs = models.Menu.objects.raw("select id,count(num) value,num name from menu where big_type = '菜式' group by num order by value desc limit 10")item = []for i in cs:d = {"name": i.name, "value": i.value}item.append(d)data["cs"] = list(item)return JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161

🍅✌**感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!**🍅✌

5、源码获取方式

🍅**由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。**🍅

**点赞、收藏、关注,不迷路,**下方查看**👇🏻*获取联系方式*👇🏻


http://www.ppmy.cn/ops/128303.html

相关文章

从 IP 源地址入手,如何预防 DDoS 攻击?

分布式拒绝服务攻击(DDoS)是网络安全的一大威胁。DDoS 攻击通过大量的虚假请求,使目标服务器资源耗尽,无法正常为合法用户提供服务。而从 IP 源地址入手,是预防 DDoS 攻击的一个重要途径。 一、了解 DDoS 攻击与 IP 源…

K8s曝9.8分漏洞,黑客可获得Root访问权限

近日,安全研究人员Nicolai Rybnikar 发现Kubernetes镜像构建器中存在严重安全漏洞(CVE-2024-9486 ,CVSS :9.8),攻击者可在特定情况下获得Root级访问权限,从而导致系统出现问题。 Nicolai Rybnik…

接口测试(八)jmeter——参数化(CSV Data Set Config)

一、CSV Data Set Config 需求:批量注册5个用户,从CSV文件导入用户数据 1. 【线程组】–>【添加】–>【配置元件】–>【CSV Data Set Config】 2. 【CSV数据文件设置】设置如下 3. 设置线程数为5 4. 运行后查看响应结果

Go 语言基础教程:7.Switch 语句

在这篇教程中,我们将学习 Go 语言中的 switch 语句,它是条件分支的重要结构。我们将通过一个示例程序逐步解析 switch 的不同用法。 package mainimport ("fmt""time" )func main() {i : 2fmt.Print("Write ", i, " …

深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南

文章目录 引言GET 方法POST 方法PUT 方法DELETE 方法小结适用场景与特点总结最佳实践 在 API 设计中的重要性 引言 HTTP 协议的背景:介绍 HTTP(超文本传输协议)作为互联网的基础协议,自 1991 年发布以来,成为客户端和…

并发基础知识

并发基础知识 进程和线程的区别 进程 每一个进程都拥有自己独立的内存空间等系统资源。进程与进程之间是相互独立的,都有自己的虚拟地址空间,一个进程出现问题崩溃,不会影响到其他的进程。进程与进程之间的通信比较复杂,一般是…

AIGC智能提示词项目实践(1):深入MySQL高级语法,提升开发效率

AIGC智能提示词项目实践-1:深入MySQL高级语法,提升开发效率 1.读取数据表中的字段进行脱敏(*加密)2.自动获取对应的数据表和字段3.表单有数据才进行更新的条件语句(构成数组)4.动态更新字段且进行条件判断5.动态更新数据表和字段6.字段自身1的操作7.多关…

Windows系统配置yarn全局变量

问题 npm -g install yarn之后&#xff0c;yarn -v出错 解决 一般情况下&#xff0c;Yarn 安装在以下路径之一&#xff1a; C:\Users<YourUsername>\AppData\Roaming\npm C:\Program Files (x86)\Yarn\bin 参考文章 https://blog.csdn.net/weixin_40854531/article/d…