Skip to main content

一个轻量级的 Python Web 框架, 提供自动发现、模型基类、命令行工具等功能

Project description

🚀 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


⚡️ 立即访问完整文档 →

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faster_app-0.1.4.tar.gz (624.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

faster_app-0.1.4-py3-none-any.whl (659.2 kB view details)

Uploaded Python 3

File details

Details for the file faster_app-0.1.4.tar.gz.

File metadata

  • Download URL: faster_app-0.1.4.tar.gz
  • Upload date:
  • Size: 624.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for faster_app-0.1.4.tar.gz
Algorithm Hash digest
SHA256 383221fb625333dee345efcaa8b6dc49a6c35c4c5514a2beec279cb41f917994
MD5 cdd74e53514795fcea5fe82066683225
BLAKE2b-256 a6ef5d46123e68925e4905548e5bbb66e237b9b5d084ad5d99a0fe014d7ba49d

See more details on using hashes here.

File details

Details for the file faster_app-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: faster_app-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 659.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for faster_app-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6fa2beb89bb09a180ba0ef87c7a64e2851e5385cebc2d08d0e25245101d3bd9c
MD5 32602f9286bbb384de35d6d5aa48ffde
BLAKE2b-256 434b7d8d802b5e6ed1b764c95e038eec278f664c2cc185410af15d50422617ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page