从重复的 FastAPI 设置到模块化 CLI 生成器
发布: (2026年1月19日 GMT+8 11:02)
3 min read
原文: Dev.to
Source: Dev.to
问题陈述
我已经在生产环境中使用 FastAPI 构建项目有一段时间了,每次启动一个新服务时都会遇到同样的问题:
- 设置数据库连接(PostgreSQL / MySQL / SQLite)
- 实现 JWT 认证
- 为缓存接入 Redis
- 配置 Celery 进行后台任务
- 编写 Docker 与 Docker Compose 配置
- 设置 Alembic 迁移
- 配置 pytest(异步、fixture 等)
你懂的,这些都是常规操作。
解决方案:Forge CLI
在一次又一次的重复操作后,我把所有内容抽取成了一个可复用的交互式 CLI 工具 Forge,它可以根据你实际需要的功能生成 FastAPI 项目。
pip install ningfastforge
forge init
CLI 会引导你完成一系列提示,根据你的选择生成完整的项目。
特性
- ✅ 干净、面向生产的 FastAPI 项目结构
- ✅ 使用 SQLModel 或 SQLAlchemy 的数据库设置(PostgreSQL / MySQL / SQLite)
- ✅ JWT 认证(基础或完整流程,含邮件验证)
- ✅ Redis 集成用于缓存
- ✅ Celery 配置用于后台任务
- ✅ 可直接使用的 Docker 与 Docker Compose
- ✅ Alembic 迁移
- ✅ 支持异步的 pytest 配置
生成器是模块化的:
- 不需要 Redis?可以跳过。
- 不需要认证?可以跳过。
- 只想要一个带数据库的简单 API?也可以。
Forge 只会为你选择的功能生成相应的文件和配置,而不是强制使用“一刀切”的模板。
链接
- GitHub: https://github.com/ning3739/forge
- PyPI: https://pypi.org/project/ningfastforge/
- Documentation: https://ningfastforge.readthedocs.io/
反馈
我很想听听其他 FastAPI 使用者的反馈:
- 你通常是如何快速启动新的 FastAPI 项目的?
- 哪些部分是你觉得最烦人的重复设置?
- 你希望此类工具具备哪些功能,但目前还没有看到?
感谢阅读 🙌