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

基于Django开发校园食堂美食推荐系统

基于Django开发校园食堂美食推荐系统

项目简介

"食堂美食推荐系统"是一款专为校园美食推荐与交流平台。本系统旨在解决师生在校园食堂就餐时面临的"吃什么"的困扰,通过智能推荐、用户评价、社交互动等功能,为用户提供便捷、个性化的美食选择体验。

项目截图

核心功能

  1. 用户互动系统
  • 用户注册、登录、个人信息管理
  • 菜品收藏、评分、评论功能
  • 评论点赞、回复互动
  • 用户间社交互动
  1. 食堂管理功能
  • 食堂、窗口、菜品信息管理
  • 菜品标签分类系统
  • 价格、评分、销量等数据展示
  • 管理员后台数据维护

技术架构

-前端技术栈

  • Vue 3 + TypeScript
  • Vite 构建工具
  • Vant UI 组件库
  • Axios 网络请求

-后端技术栈

  • Django 4.1.7
  • SQLite 数据库(支持扩展至 MySQL)
  • RESTful API 设计
  • Django REST framework

-数据模型

  • 用户(User):用户信息、收藏、购买记录
  • 食堂(Canteen):食堂基本信息
  • 窗口(Window):食堂窗口信息
  • 菜品(Dish):菜品详情、价格、评分等
  • 标签(Tag):菜品分类标签
  • 评论(Comment):用户评价
  • 回复(Reply):评论互动

启动教程

一、环境准备

  1. 系统要求
  • Python 3.7+
  • Node.js 16+
  • npm 8+
  • Git
  1. 开发工具推荐
  • PyCharm
  • Git

二、后端启动步骤

  1. 创建并激活虚拟环境
# Windows
python -m venv venv
venv\Scripts\activate# macOS/Linux
python3 -m venv venv
source venv/bin/activate

2安装后端依赖

cd buaaDishWebsite
pip install -r requirement.txt# 如需支持跨域和MySQL,安装额外依赖
pip install mysqlclient django-cors-headers
  1. 数据库配置
# 执行数据库迁移
python manage.py makemigrations
python manage.py migrate# 创建超级管理员账号(可选)
python manage.py createsuperuser
  1. 启动后端服务
python manage.py runserver

服务默认运行在 http://localhost:8000

三、前端启动步骤

  1. 进入前端目录
cd ../vue
  1. 安装前端依赖
npm install
  1. 开发环境启动
npm run dev

前端服务默认运行在 http://localhost:5173

  1. 生产环境构建
npm run build

构建产物位于 dist 目录

四、项目配置说明

  1. 后端配置
  • 数据库配置:buaaDishWebsite/settings.py
  • API 路由:buaaDishWebsite/urls.py
  • 跨域设置:安装 django-cors-headers 后配置
  1. 前端配置
  • API 地址配置:src/config/index.ts
  • 环境变量:.env 文件
  • 构建配置:vite.config.ts
http://www.xdnf.cn/news/545545.html

相关文章:

  • 如何查看与设置电脑静态IP地址:完整指南
  • Vue 3.0 中 Teleport 详解
  • Redisson分布式集合原理及应用
  • 注意力机制概念
  • SparkContext介绍
  • flutter设置最大高度,超过最大高度时滑动显示
  • 记录一下flutter项目自己封窗的弹窗
  • Flutter - 集成三方库:数据库(sqflite)
  • java云原生实战之graalvm 环境安装
  • OpenCV 图像读取与显示
  • 【工具使用】STM32CubeMX-USB配置-实现U盘功能
  • Python的collections模块:数据结构的百宝箱
  • 基于 Netty + SpringBoot + Vue 的高并发实时聊天系统设计与实现
  • Windows Ubuntu 目录映射关系
  • Vue2到Vue3迁移问题解析
  • fdisk和parted的区别
  • 数据结构测试模拟题(1)
  • mysql的基础命令
  • pycharm无需科学上网工具下载插件的解决方案
  • Brave 连接 Websocket 失败
  • 【LeetCode 热题 100】有效的括号 / 最小栈 / 字符串解码 / 柱状图中最大的矩形
  • 【Linux基础操作】
  • Linux jq 命令使用详解
  • 《安徽日报》聚焦珈和科技AI创新:智慧虫情测报护航夏粮提质丰产
  • Prompt Tuning:高效微调大模型的新利器
  • Vue3 中使用 provide/inject 实现跨层级组件传值失败的原因及解决方案
  • 分析 redis 的 exists 命令有一个参数和多个参数的区别
  • 区间内最远互质点对
  • 编程最接近现实的模拟---随机数
  • QT6 源(113)篇二:阅读与注释工具栏 QToolBar,给出源码