# CloudKitchen-python **Repository Path**: XiaoYoe/cloud-kitchen-python ## Basic Information - **Project Name**: CloudKitchen-python - **Description**: null null null null - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CloudKitchen 食谱项目 一个基于 Flask 的食谱管理系统,提供完整的 RESTful API 接口,支持食谱的创建、查询、更新、删除,以及分类、标签、食材管理等功能。 ## 项目结构 ``` CloudKitchen-python/ ├── app/ # 应用主目录 │ ├── __init__.py # 应用工厂函数 │ ├── auth/ # 认证模块 │ ├── users/ # 用户模块 │ ├── recipes/ # 食谱模块 │ ├── categories/ # 分类模块 │ ├── ingredients/ # 食材模块 │ ├── tags/ # 标签模块 │ ├── comments/ # 评论模块 │ └── favorites/ # 收藏模块 ├── config.py # 配置文件 ├── run.py # 应用启动脚本 ├── init_db.py # 数据库初始化脚本 ├── requirements.txt # 项目依赖 └── README.md # 项目说明文档 ``` ## 功能特点 1. **用户认证**:支持用户注册、登录、个人信息管理,使用 JWT 进行身份验证 2. **食谱管理**:创建、查看、更新、删除食谱,支持分页和搜索 3. **分类管理**:食谱分类的增删改查,支持多级分类 4. **标签管理**:为食谱添加标签,方便分类和搜索 5. **食材管理**:管理食材信息和营养成分 6. **评论功能**:用户可以对食谱进行评论和评分 7. **收藏功能**:用户可以收藏喜欢的食谱 ## 技术栈 - **后端框架**:Flask - **数据库**:MySQL - **ORM**:SQLAlchemy - **序列化**:Marshmallow - **身份验证**:JWT (JSON Web Token) ## 安装和运行 ### 前提条件 - Python 3.7+ - MySQL 5.7+ ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 配置数据库 修改 `config.py` 文件中的数据库连接配置: ```python SQLALCHEMY_DATABASE_URI = 'mysql://username:password@localhost/db_name' ``` ### 初始化数据库 ```bash python init_db.py ``` 这将创建所有必要的数据库表,并创建一个管理员用户(用户名:admin,密码:admin123)。 ### 启动应用 ```bash python run.py ``` 应用将在 `http://localhost:5000` 启动。 ## API 接口文档 ### 认证接口 - **POST /auth/register**:用户注册 - **POST /auth/login**:用户登录(返回 JWT token) - **GET /auth/profile**:获取当前用户信息(需要认证) - **PUT /auth/profile**:更新当前用户信息(需要认证) - **PUT /auth/change-password**:修改密码(需要认证) ### 用户接口 - **GET /users**:获取用户列表(支持分页和搜索) - **GET /users/**:获取单个用户详情 - **GET /users//recipes**:获取用户创建的食谱 - **GET /users//favorites**:获取用户收藏的食谱 ### 食谱接口 - **GET /recipes**:获取食谱列表(支持分页、搜索、分类筛选) - **GET /recipes/**:获取单个食谱详情 - **POST /recipes**:创建新食谱(需要认证) - **PUT /recipes/**:更新食谱(需要认证) - **DELETE /recipes/**:删除食谱(需要认证) ### 分类接口 - **GET /categories**:获取所有分类 - **GET /categories/**:获取单个分类详情 - **POST /categories**:创建新分类(需要管理员权限) - **PUT /categories/**:更新分类(需要管理员权限) - **DELETE /categories/**:删除分类(需要管理员权限) ### 食材接口 - **GET /ingredients**:获取食材列表 - **GET /ingredients/**:获取单个食材详情 - **POST /ingredients**:创建新食材(需要管理员权限) - **PUT /ingredients/**:更新食材(需要管理员权限) - **DELETE /ingredients/**:删除食材(需要管理员权限) ### 标签接口 - **GET /tags**:获取所有标签 - **GET /tags/**:获取单个标签详情 - **POST /tags**:创建新标签(需要管理员权限) - **PUT /tags/**:更新标签(需要管理员权限) - **DELETE /tags/**:删除标签(需要管理员权限) ### 评论接口 - **GET /comments**:获取评论列表 - **GET /comments/**:获取单个评论详情 - **POST /comments**:创建评论(需要认证) - **PUT /comments/**:更新评论(需要认证) - **DELETE /comments/**:删除评论(需要认证) ### 收藏接口 - **GET /favorites**:获取收藏列表(需要认证) - **POST /favorites**:添加收藏(需要认证) - **DELETE /favorites/**:取消收藏(需要认证) ## 认证说明 大部分接口需要认证,在请求头中添加 `Authorization: Bearer ` 即可。token 通过 `/auth/login` 接口获取,有效期为 30 分钟。 ## 开发注意事项 1. 在生产环境中,请设置 `SECRET_KEY` 为安全的随机字符串 2. 确保数据库连接信息的安全性,不要在代码中硬编码敏感信息 3. 开发环境中可以设置 `debug=True`,生产环境必须设置为 `False` ## License MIT