Scallpy(beta):像 Vite 一样快速搭建 FastAPI 项目 – 秒级完成
Source: Dev.to
🤯 生产力困境:慢还是臃肿?
FastAPI 速度极快,但它的脚手架生态并不总是如此。
如果你和大多数人一样,在启动项目时一定经历过以下两条痛苦路径之一:
- 手动路线(慢速路径) 🐌 – 搭建文件夹结构、测试、初始数据库连接、Pydantic 和环境变量,这些工作会耗费本该用于业务逻辑的数小时。
- 模板路线(臃肿) 🐘 – 使用沉重的模板会引入不必要的复杂度和你根本不会用到的功能,导致代码臃肿,最终还得把它们删掉。
真正的问题在于:我们需要现代 CLI 框架的启动速度,却又想保留 FastAPI 的自由与极简。
💡 区别:交互式而非强加
这就是改变游戏规则的地方。我们没有提供“一揽子”模板,而是构建了 Scallpy —— 一个只给你所请求内容的 CLI 工具。它交互式、灵活,并保持极简。
| 方面 | 其他工具 | Scallpy |
|---|---|---|
| 依赖 | 安装许多你可能不需要的依赖 | 由你决定安装什么(仅提供 ORM 和数据库选项) |
| 安装方式 | 需要较长的安装过程 | 简单 pip install scallpy==0.1.2,然后运行 scallpy create |
| 项目结构 | 固定结构 | 可在干净或结构化项目之间选择(基本结构) |
🛠 内容是什么?掌控权在你手中
最终得到的是符合 Python 社区标准的干净结构,注重可读性。
干净项目
myproject/
├── src/
│ └── myproject/
│ ├── __init__.py
│ └── main.py
├── tests/
│ └── test_basic.py
├── .gitignore
├── pyproject.toml
└── README.md
结构化项目
myproject/
├── src/
│ └── myproject/
│ ├── __init__.py
│ ├── api/
│ │ ├── __init__.py
│ │ └── routes.py
│ ├── core/
│ │ ├── __init__.py
│ │ └── config.py
│ ├── main.py
│ └── models/
│ └── __init__.py
├── tests/
│ └── test_basic.py
├── .env
├── .gitignore
├── pyproject.toml
├── README.md
└── requirements.txt
添加 --use-db 以获得数据库支持,或 --use-orm 以获得 ORM 模型。这样在大型应用中更易扩展。
🧠 智能设计:注释掉的数据库
为什么数据库代码被注释掉?为了保持灵活性。并非每个项目在第一天就需要数据库,所以导入语句和启动事件被注释。准备好添加数据库支持时,只需取消注释——如此简单。这避免了强制引入不必要的依赖,同时保持模板的干净与极简。
⚠️ Beta 状态
Scallpy 目前仍处于 beta 阶段。工具尚未完全成熟,可能会出现小 bug 或意外行为。如果发现问题,请在 GitHub 上提交报告——我们会快速修复。你的反馈帮助我们改进并实现稳定发布!
🤝 试用并贡献
准备好尝试 Scallpy 了吗?使用以下命令安装:
pip install scallpy
几秒钟即可创建你的第一个项目:
scallpy create
如果喜欢,请在 GitHub 上给它点星。通过报告问题、提出功能建议或提交 Pull Request 来贡献代码。