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.2.tar.gz (618.9 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.2-py3-none-any.whl (651.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for faster_app-0.1.2.tar.gz
Algorithm Hash digest
SHA256 232a0af67d41917c178be96f50d72dcbbc287d264df74619a80e5e4ee2c16c02
MD5 898843592ec34a39d2c55618b967c77b
BLAKE2b-256 7c9174347b58a5e06d1819f485ecd164cbaceb216607f83384c3209388978a3d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for faster_app-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 993d77d6b6b047c7ef9100c64fa72217150d738679fbca75dde2a975aeaa646f
MD5 80b235b047253c4f2dde3ef74f5f873e
BLAKE2b-256 a8313cef5d3178e98828ee6a528458801d13786dce5247e8372f2445403c0298

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