MyBoot是一个功能丰富的Python Web框架,旨在提供类似Spring Boot的自动配置和快速开发体验。它集成了Web API、定时任务、日志管理、配置管理等核心功能,帮助开发者高效构建现代化的Python应用程序。
✨ 主要特性
- 🚀 快速启动:类似Spring Boot的自动配置和快速启动
- 🎯 约定优于配置:遵循约定,减少配置工作,自动发现和注册组件
- 🌐 Web API:基于FastAPI的高性能Web API开发
- 🌐 REST API统一响应格式
- ⚡ 高性能服务器:默认使用Hypercorn服务器,支持HTTP/2和多进程
- ⏰ 定时任务:强大的任务调度系统,支持Cron表达式和间隔任务
- 📝 日志管理:基于loguru的强大日志系统,支持结构化日志和第三方库日志控制
- ⚙️ 配置管理:基于Dynaconf的强大配置系统,支持YAML配置、环境变量覆盖和远程配置
- 🔧 中间件支持:丰富的中间件生态,包括CORS、限流、安全等
- 📊 健康检查:内置健康检查、就绪检查和存活检查
- 🎯 依赖注入:简单的依赖注入和组件管理
- 🔄 优雅关闭:支持优雅关闭和资源清理
- 📚 自动文档:自动生成API文档和交互式界面
⚡ 一分钟快速上手
安装命令:
pip install myboot
创建项目:
myboot init --name my-app --template api
cd my-app
python main.py
访问 http://localhost:8000,一个完整的API服务即启动运行。
✨ 示例:Hello MyBoot
from myboot.core.application import create_app
from myboot.core.decorators import get
app = create_app(name="HelloApp")
@get("/")
def hello():
return {"message": "Hello, MyBoot!"}
if __name__ == "__main__":
app.run()
无需手动注册路由、配置日志或服务器,MyBoot会自动扫描、注册并运行所有组件。
统一响应格式
配置示例:
server:
response_format:
enabled: true # 是否启用自动格式化
exclude_paths: # 排除的路径(这些路径不会自动格式化)
- "/custom/path"
- "/another/path"
响应格式:
{
"success": true,
"code": 200,
"message": "操作成功",
"data": {
// 实际业务数据
}
}
🧠 自动依赖注入与服务发现
MyBoot的依赖注入机制让组件之间解耦变得自然:
from myboot.core.decorators import service, get
from myboot.core.application import get_service
@service()
class UserService:
def get_user(self, user_id):
return {"id": user_id, "name": f"用户{user_id}"}
@get("/users/{user_id}")
def get_user(user_id: int):
user_service = get_service('user_service')
return user_service.get_user(user_id)
无须繁琐配置,框架自动识别、注册并注入依赖。
🕒 定时任务与后台任务
from myboot.core.decorators import cron
@cron("0 */1 * * * *")
def hourly_job():
print("每小时执行一次任务")
还可轻松集成异步任务或后台处理逻辑,无需引入Celery等额外组件。
🧰 统一的配置与日志管理
配置文件示例(conf/config.yaml):
app:
name: "MyBoot App"
server:
port: 8000
logging:
level: INFO
file: logs/app.log
配置自动加载,可被环境变量或远程文件覆盖。内置Loguru日志系统,支持结构化与JSON输出。
📁 推荐项目结构
my-app/
├── main.py
├── app/
│ ├── api/ # 路由
│ ├── service/ # 服务层
│ ├── jobs/ # 定时任务
│ └── client/ # 外部客户端
├── conf/config.yaml
└── tests/
结构简洁规范,开箱即用。
💬 总结
MyBoot并非又一个普通的Web框架,而是让Python开发体验接近Spring Boot的一体化解决方案。它让开发者专注于业务逻辑,而非重复配置。更多细节和文档可参考项目地址:github.com/TrumanDu/myboot。