Skip to main content

fastapi-builder Project generator and manager for FastAPI

Project description

「 FastAPI Builder 」


💡 fastapi 项目构建器. 一款帮助你快速构建 fastapi 项目的工具.

  fastapi-builder 是一个基于 FastAPI 框架的快速 Web 应用程序开发的工具箱。它提供了一组现成的工具和组件,可以帮助你快速构建具有良好结构和可维护性的 FastAPI Web 应用程序。其目的是提供一个一站式的解决方案,以加速快速原型开发和生产部署。


💬 特性

  • 参考 Django 化项目基础命令.

  • 创建可自定义的 project 项目.

  • 创建可定制的 app 应用.

  • 为您生成完整的项目结构.

  • 对数据库操作进行封装,便于轻松管理.

  • 支持数据库包括 Mysql.

  • 可选的配置如: Dockerfile、pre-commit.

  • 对虚拟环境进行管理.


🎯 TODO

  • 持续完善项目框架代码部分

  • 持续完善项目框架文档部分

  • 优化 requirements.txt

  • 提供英文版本

  • 提供项目数据库 PostgreSQL 选项

  • 提供完整的 run 方法

  • 内置 alembic 数据迁移等管理

  • 提供对运行环境的检查

  • 提供 fastapi venv 命令,创建/开启/关闭虚拟环境

  • 针对 Linux 环境提供支持

  • 针对 Mac 环境提供支持

  • 生成 app 时,自动注入到 project 中(路由管理分配)


🚀 快速开始

=> 依赖:Python 3.6+
=> 详细教程:tutorial

安装 fastapi-builder 项目:

pip install fastapi-builder

查看项目版本:

fastapi --version

项目帮助:

fastapi --help
fastapi startproject --help

创建 fastapi 项目:

fastapi startproject [name]

# or 带有交互选择

fastapi startproject [name] --interactive

创建 fastapi 应用:

fastapi startapp [name]

运行 fastapi 项目:

fastapi run

通过访问 http://127.0.0.1:8000/docs 以确保 fastapi 服务正常运行.


📁 项目结构

.
├── alembic/                      - 数据库迁移工具
├── api/                          - web 相关路由认证请求响应.
   ├── errors/                   - 定义错误处理方法.
      ├── http_error.py         - http 错误处理方法
      │── validation_error.py   - 验证错误处理方法
   ├── routes/                   - web routes 路由.
      ├── api.py                - 总路由接口
      └── authentication.py     - 认证相关登录注册路由
├── app_user/                     - user 应用.
   ├── api.py                    - 提供 user 接口方法
   ├── model.py                  - 提供 user 表模型
   ├── schema.py                 - 提供 user 结构模型
├── core/                         - 项目核心配置, : 配置文件, 事件句柄, 日志.
   ├── .env                      - 配置文件.
   ├── config.py                 - 解析配置文件, 用于其他文件读取配置.
   ├── events.py                 - 定义 fastapi 事件句柄.
   ├── logger.py                 - 定义项目日志方法.
├── db/                           - 数据库相关.
   ├── base.py                   - 导入所有应用 model.
   └── database.py               - sqlalchemy 方法应用.
   ├── errors.py                 - 数据库相关错误异常.
   ├── events.py                 - 数据库相关事件句柄.
├── lib/                          - 自定义库
   ├── jwt.py                    - 用户认证 jwt 方法.
   ├── security.py               - 加密相关方法.
├── logs/                         - 日志文件目录.
├── middleware/                   - 项目中间件.
   ├── logger.py                 - 请求日志处理.
├── models/                       - sqlalchemy 基础模型相关
   ├── base.py                   - sqlalchemy declarative Base 表模型.
   └── mixins.py                 - mixin 抽象模型定义.
├── schemas/                      - pydantic 结构模型相关.
   ├── auth.py                   - 用户认证相关结构模型.
   └── base.py                   - pydantic 结构模型基础类.
   ├── jwt.py                    - jwt 相关结构模型.
├── utils/                        - 工具类.
   ├── consts.py                 - 项目常量定义.
   ├── dbmanager.py              - 数据库管理服务.
   ├── docs.py                   - fastapi docs 文档自定义.
├── .pre-commit-config.yaml       - pre-commit 配置文件.
├── alembic.ini                   - alembic 数据库迁移工具配置文件.
├── docker-compose.yaml           - docker 配置.
├── Dockerfile                    - dockfile 文件.
├── .fastapi-builder.ini          - fastapi-builder 配置文件.
├── LICENSE                       - 许可证信息.
├── main.py                       - fastapi application 创建和配置.
├── pyproject.toml                - poetry 需求模块信息.
├── README.md                     - 项目说明文档.
├── requirements.txt              - pip 需求模块信息.
└── setup.cfg                     - pre-commit 配置文件.

⚡ 特别感谢

项目配置生成及 questionary 内容基于项目:https://github.com/ycd/manage-fastapi

fastapi 项目基础框架参考:https://github.com/nsidnev/fastapi-realworld-example-app/


🚩 许可证

项目根据麻省理工学院的许可条款授权.

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

fastapi-builder-1.3.3.tar.gz (331.7 kB view hashes)

Uploaded Source

Built Distribution

fastapi_builder-1.3.3-py3-none-any.whl (71.5 kB view hashes)

Uploaded Python 3

Supported by

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