Skip to main content

🚀 Faster APP

FastAPI 最佳实践框架 - 约定优于配置

Python Version FastAPI License Version Documentation

为 FastAPI 带来 Django 风格的项目结构和开发体验


📚 完整文档站 | 快速开始 | 核心特性 | 命令行工具 | 赞助支持


💡 提示:README 仅包含快速入门指南,完整的使用教程、API 参考和最佳实践请访问 📖 在线文档站


🎯 解决什么问题?

💭 FastAPI 的灵活性困扰

FastAPI 非常灵活, 但这种灵活性也带来了问题:

问题 表现 影响
项目结构混乱 每个项目都有不同的目录结构 团队协作困难, 代码难以维护
重复造轮子 每次都要重新设计模型基类、路由结构 开发效率低, 代码质量不一致
配置复杂 手动注册路由、中间件、数据库模型 容易出错, 启动代码冗长
缺乏约定 没有统一的开发规范和最佳实践 新人上手困难, 项目难以扩展

💡 Faster APP 的解决方案

核心理念:约定优于配置 (Convention over Configuration)

借鉴 Django 的成功经验, 为 FastAPI 制定一套标准化的项目结构和开发约定。


✨ 核心特性

🏗️ 标准化项目结构

your-project/
├── apps/                    # 应用模块 (Django 风格)
│   ├── users/              # 用户模块
│   │   ├── models.py       # 数据模型
│   │   ├── routes.py       # API 路由
│   │   └── commands.py     # 命令行工具
│   └── posts/              # 文章模块
│       ├── models.py
│       ├── routes.py
│       └── commands.py
├── config/                 # 配置目录
│   └── settings.py         # 自定义配置
└── .env                    # 环境变量

🔍 智能发现与注册

通过智能自动发现, 实现项目 0️⃣ 配置启动

🛣️ 路由自动发现

扫描 apps/*/*.py 文件, 递归查找 APIRouter 类的实例, 并注册成为 Fastapi 路由

📊 模型自动发现

扫描 apps/*/models.py 文件, 递归查找 tortoise.Model 类, 并注册到 TORTOISE_ORM 中, 实现模型自动化管理

⚡ 命令自动发现

扫描 apps/*/*.py 文件, 递归查找 BaseCommand 类实例, 注册给 Fire 库, 实现命令行参数管理

🔧 中间件自动发现

扫描 apps/middleware/*.py 文件, 递归查找 BaseMiddleware 类, 然后注册到 fastapi 实例, 实现中间件注册

⚙️ 项目配置自动发现

扫描 apps/config/*.py 文件, 递归查找 BaseSettings 类实例, 自动合并多个配置类, 从 .env 中读取配置并注册给应用;

🗄️ 企业级模型基类

# 四大基础模型, 覆盖 90% 业务场景
UUIDModel     # UUID 主键
DateTimeModel # 创建/更新时间
EnumModel   # 动态枚举字段
ScopeModel    # 多租户作用域

🛠️ Django 风格命令行

faster server start    # 启动开发服务器
faster db migrate      # 数据库迁移
faster db upgrade      # 执行迁移

🚀 快速开始

📦 安装

# 使用 uv (推荐)
uv add faster-app

# 或使用 pip
pip install faster-app

⚡ 5 分钟快速上手

# 1. 创建项目
uv init my-project && cd my-project
uv add faster-app

# 2. 创建应用结构
faster app demo

# 3. 启动开发服务器
faster server start

✅ 完成! 访问 http://localhost:8000 查看你的 FastAPI 应用

📚 接下来做什么?

📖 完整安装教程 ⚡ 快速入门指南 🏗️ 项目结构说明
详细的安装步骤和环境配置 从零创建第一个应用 理解目录结构和文件组织

🛠️ 命令行工具

Faster APP 提供完整的 Django 风格命令行工具:

📋 常用命令

# 应用管理
faster app demo              # 创建示例应用
faster app config            # 创建配置目录
faster app env               # 创建环境变量文件

# 数据库管理
faster db init               # 初始化迁移
faster db migrate            # 生成迁移文件
faster db upgrade            # 执行迁移

# 服务器管理
faster server start          # 启动开发服务器

📖 完整命令参考

想了解所有命令的详细用法?查看完整文档:

📚 查看完整 CLI 文档

包含所有命令的参数说明、使用示例和最佳实践


📖 文档导航


🎯 为什么选择 Faster APP?点击展开

💭 FastAPI 的灵活性困扰

借鉴 Django 的成功经验, 为 FastAPI 制定一套标准化的项目结构和开发约定。

🤝 社区与支持

📞 获取帮助

🤝 贡献代码

  1. 🍴 Fork 本仓库
  2. 🌱 创建特性分支: git checkout -b feature/amazing-feature
  3. ✨ 提交更改: git commit -m 'Add amazing feature'
  4. 🚀 推送分支: git push origin feature/amazing-feature
  5. 📝 提交 Pull Request

🎨 设计原则

  • 📜 约定优于配置: 通过约定减少配置
  • 🎆 Django 风格: 借鉴 Django 的成功经验
  • 🚀 开发者友好: 提升开发效率和体验
  • 🏢 企业级: 满足生产环境需求

📄 许可证

本项目采用 MIT 许可证。

🙏 致谢

感谢以下开源项目的启发:

  • ⚡ FastAPI - 现代、快速的 Web 框架
  • 🐢 Tortoise ORM - 异步 ORM 框架
  • 🔥 Fire - 命令行接口生成器

📚 资源链接


💝 赞助支持

如果 Faster APP 帮你节省了时间、提升了效率,或让你的开发工作变得更轻松,不妨请作者喝杯咖啡 ☕️
你的每一份支持,都是我持续优化和添加新功能的动力! ❤️

微信支付
微信支付
支付宝
支付宝

感谢每一份支持!你的鼓励是我持续更新的动力 🚀


🌟 给个 Star 吧!

如果 Faster APP 对你有帮助,请给我们一个 ⭐️ Star!

这是对开源项目最好的支持和鼓励


Star History Chart



📚 快速链接

📖 在线文档 · 📦 PyPI · 💬 讨论区 · 📝 更新日志

作者: peizhenfei · 微信: hsdtsyl · GitHub


⚡️ 立即访问完整文档 →

Metadata

Release files for faster-app 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for faster-app 0.1.10
File Size Uploaded
faster_app-0.1.10.tar.gz 678.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for faster-app 0.1.10
File Interpreter ABI Platform
faster_app-0.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / faster_app-0.1.10.tar.gz

Download URL faster_app-0.1.10.tar.gz
Size 678.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e05618f3d275e108f7966cdae3d0e49f8dd0a4f37114792cd400e6a07cc4e275
BLAKE2b-256 checksum
How to use checksums
b3670c3a143a5a709020c4c9b0f7710f4ce3b860416c46fec12021cd9785b423
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / faster_app-0.1.10-py3-none-any.whl

Download URL faster_app-0.1.10-py3-none-any.whl
Size 706.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a56c152ec7024e249301afe4d8903ace7d7f6e61ff8bd081146bed4cf3b92831
BLAKE2b-256 checksum
How to use checksums
e6a0f8fe0ab2464e7ae8ec282a716fff0bb95599f2e210a5020dea0b2b370717
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.0.43

2 release files

0.0.41

2 release files

0.0.40

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.37

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.29

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page