# Python 项目模板 一个标准化的 Python 项目开发模板,集成了配置管理、日志系统和 Pydantic 数据验证。 ## 特性 - 🔧 **配置管理**: 基于 YAML 的配置文件,使用 Pydantic 进行数据验证 - 📝 **日志系统**: 集成 Loguru,支持控制台和文件输出,自动轮转和压缩 - 🏗️ **标准结构**: 清晰的项目目录结构,便于维护和扩展 - ✅ **类型安全**: 使用 Pydantic 模型确保配置数据的类型安全 - 🔄 **单例模式**: 日志管理器采用单例模式,确保全局唯一实例 ## 项目结构 ``` ├── config/ # 配置文件 │ └── config.yaml # 主配置文件 ├── examples/ # 使用示例 │ ├── example_config_loader.py │ └── example_logger.py ├── src/ # 源代码 │ ├── core/ # 核心功能模块 │ ├── models/ # 数据模型 │ │ ├── __init__.py │ │ └── config_models.py # 配置数据模型 │ ├── modules/ # 业务模块 │ └── utils/ # 工具类 │ ├── config_loader.py # 配置加载器 │ └── logger.py # 日志管理器 ├── tmp/ # 临时文件 │ └── log/ # 日志文件 ├── main.py # 程序入口 ├── pyproject.toml # 项目配置 └── README.md ``` ## 快速开始 ### 环境要求 - Python >= 3.12 - uv (推荐) 或 pip ### 安装依赖 使用 uv (推荐): ```bash uv sync pre-commit install # 可选 ``` 或使用 pip: ```bash pip install -r requirements.txt ``` ### 运行项目 ```bash python main.py ``` ## 核心组件 ### 1. 配置管理 配置系统使用 Pydantic 进行数据验证,确保配置的正确性。 ```python from src.utils.config_loader import get_config_loader # 获取配置加载器 loader = get_config_loader() # 验证并加载配置 config = loader.validate_config() # 获取日志配置 log_config = loader.get_log_config() ``` ### 2. 日志系统 基于 Loguru 的日志系统,支持多种输出格式和自动轮转。 ```python from src.utils.logger import get_logger # 获取日志记录器 logger = get_logger("MODULE_NAME") # 记录日志 logger.info("这是一条信息日志") logger.error("这是一条错误日志") ``` ## 开发 ### 添加新模块 1. 在 `src/modules/` 下创建新的业务模块 2. 在 `src/core/` 下添加核心功能 3. 在 `src/utils/` 下添加工具函数 ### 添加新配置 1. 在 `src/models/config_models.py` 中定义新的配置模型 2. 在 `config/config.yaml` 中添加对应配置 3. 更新配置加载器以支持新配置 ### 日志使用规范 - 使用有意义的模块标签: `get_logger("API")`, `get_logger("DATABASE")` - 合理使用日志级别: DEBUG < INFO < WARNING < ERROR < CRITICAL - 记录关键操作和错误信息 ### 代码风格 遵循 PEP 8 代码风格指南,保持代码整洁和一致性。基于ruff进行代码检查和格式化。 ## 作者 wds @ (wdsnpshy@163.com)