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.6.tar.gz (656.5 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.6-py3-none-any.whl (707.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: faster_app-0.1.6.tar.gz
  • Upload date:
  • Size: 656.5 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.6.tar.gz
Algorithm Hash digest
SHA256 7b158df35007f05bbed0a5e5cacbcac190c6edd80a47f5136ebdb21bb482854b
MD5 c2ea6a304fbf3732d0a8e76f75a7c242
BLAKE2b-256 e98a43dc70613899d423736ed95426dbe62680438562764b717db05f37536b7f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: faster_app-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 707.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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1ff9e3199c8a38b9e597b8e4ea2548d81bbc83dbb4fef6edd9b0c3a6229651c3
MD5 eed9ab02afe0a18f86789b9833458485
BLAKE2b-256 02c56abae6475eec6c3b71ab7958f045a252f04de2954271d0e3598b70828bcf

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