# 项目名称 ## 简介 本项目旨在通过Flask框架构建一个Web应用,支持数据的导入、导出以及机器学习模型的训练和预测。项目使用SQLAlchemy进行数据库操作,并集成了Celery用于异步任务处理。 ## 环境搭建 ### 创建Conda环境 1. 确保已安装Anaconda。 2. 根据`environment.yml`文件新建conda环境: ```bash conda env create -f environment.yml ``` 3. 激活新创建的环境: ```bash conda activate your_env_name ``` ### 安装并配置Redis 1. 下载并安装Redis(Celery依赖): - Windows用户: 从[https://github.com/tporadowski/redis/releases](https://github.com/tporadowski/redis/releases)下载Redis 5.0.x版本 - Linux用户: `sudo apt-get install redis-server` - macOS用户: `brew install redis` 2. 版本要求: - 推荐使用Redis 5.0及以上版本 - 最低支持版本: Redis 4.0 - 项目已在Redis 5.0.14.1上测试通过 3. 启动Redis服务: - Windows: `redis-server.exe redis.windows.conf` - Linux/macOS: `redis-server` 4. 验证Redis是否正常运行: ```bash redis-cli ping ``` 如果返回`PONG`,则表示Redis服务正常运行。 ## 项目结构 - `app/`: 包含Flask应用的主要代码。 - `__init__.py`: 初始化Flask应用。 - `config.py`: 配置文件。 - `utils.py`: 工具函数。 - `model.py`: 机器学习模型相关操作。 - `tasks.py`: Celery任务定义。 - `celery_app.py`: Celery配置。 - `model_optimize/`: 包含数据处理和模型优化的代码。 - `uploads/`: 用于存储上传的文件。 - `ssl/`: 存储SSL证书和密钥。 ## 主要功能 ### 数据导入与导出 - 支持Excel和CSV格式的数据导入。 - 根据表名导出数据为Excel或CSV格式。 ### 机器学习模型 - 支持多种机器学习模型的训练和预测。 - 提供模型评分功能。 ### 异步任务 - 使用Celery处理异步任务。 ## 使用方法 ### 启动应用 1. 确保Redis服务正在运行。 2. 激活conda环境: ```bash conda activate your_env_name ``` 3. 启动Flask应用: ```bash python run.py ``` 4. 启动Celery: ```bash watchfiles --filter python "celery -A app.celery_app.celery worker --loglevel=info" . ``` > 说明:执行上述命令需要先安装 watchfiles: ```bash pip install watchfiles ``` ## 配置 在`app/config.py`中可以修改数据库路径、上传文件夹路径等配置。默认配置包括: - 数据库路径: `SoilAcidification.db` - 上传文件夹: `uploads/datasets` - 模型保存路径: `pkl` - Celery配置: - Broker URL: `redis://localhost:6379/0` - Result Backend: `redis://localhost:6379/0` ## 依赖 请确保已安装以下依赖: - Flask - SQLAlchemy - Celery - Redis - Pandas - Scikit-learn - XGBoost - Watchfiles ## 许可证