# flask-baisc-template **Repository Path**: minXAM/flask-baisc-template ## Basic Information - **Project Name**: flask-baisc-template - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flask基础模板搭建 内置了定时任务的实现方式 ## 项目结构说明 - **Dockerfile**: 提供基于 Python 3.11 的容器化部署配置,使用 Gunicorn 启动 Flask 应用。 - **app_v1/**: 主要业务模块目录。 - **models/**: 数据模型定义,如 `JobLog` 用于记录定时任务日志。 - **resources/**: API 接口定义,包含定时任务相关的接口如任务添加、任务列表、任务日志查询。 - **schemas/**: 请求数据校验模型,如 `JobCreate` 定义任务创建时的参数结构。 - **routers/**: 路由注册模块。 - **config.py**: 配置类,用于管理应用的配置信息。 - **tasks/**: 定时任务模块。 - **demo.py**: 示例任务函数,演示如何在终端执行命令。 - **tasks.py**: 提供任务注册、获取、执行等功能的装饰器和函数。 - **utils/**: 工具类模块。 - **scheduler.py**: 调度器封装,支持任务的添加、删除、启动、停止等操作,并提供事件监听和日志记录功能。 - **tools.py**: 工具函数,如 `MyCronTrigger` 扩展了 `CronTrigger` 支持 crontab 字符串解析。 - **core/**: 核心功能模块。 - **db_plugin.py**: 数据库插件配置。 - **logger.py**: 日志配置模块。 - **main.py**: 应用入口文件,用于启动 Flask 应用。 - **gunicorn.conf.py**: Gunicorn 配置文件,用于生产环境部署。 ## 功能亮点 - **定时任务系统**: 集成了基于 `APScheduler` 的定时任务系统,支持多种触发器(`cron`, `interval`, `date`)。 - **任务日志记录**: 每个任务执行都会记录日志到数据库,便于追踪任务执行状态和结果。 - **API 文档支持**: 使用 `doc` 装饰器为接口提供文档标签和摘要信息。 - **模块化设计**: 项目结构清晰,模块职责分明,便于扩展和维护。 - **容器化部署**: 提供 Dockerfile 支持快速部署到容器环境中。 ## 使用说明 ### 安装依赖 ```bash pip install -r req.txt ``` ### 启动应用 ```bash python main.py ``` 或使用 Gunicorn: ```bash gunicorn --config gunicorn.conf.py main:app ``` ### 容器化部署 ```bash docker build -t flask-template . docker run -d -p 5000:5000 flask-template ``` ## API 接口 - **GET /hello**: 定时任务日志查询接口。 - **GET /task**: 获取可用任务函数列表。 - **POST /job**: 添加新的定时任务。 ## 任务管理 - 支持添加、删除、暂停、恢复、运行任务。 - 支持多种触发器:`cron`, `interval`, `date`。 - 支持任务分类管理,便于组织和查找任务。 ## 日志记录 - 任务执行日志会写入 `logs/log.log` 文件。 - 任务执行状态和结果会记录到数据库中,便于追踪和分析。 ## 扩展性 - 可通过 `tasks/` 目录下的模块扩展新的任务函数。 - 可通过 `app_v1/resources/` 目录下的模块扩展新的 API 接口。 ## 开发建议 - 使用 `.python-version` 文件指定 Python 版本(3.11)。 - 使用 `pyproject.toml` 管理项目元数据和依赖。 - 使用 `.gitignore` 忽略不必要的文件提交到版本控制中。 ## 许可证 该项目遵循 MIT 许可证。详情请查看 LICENSE 文件。