Skip to main content

FastAPI项目脚手架

Project description

MsPro - FastAPI 异步项目通用脚手架

MsPro 是一个基于 FastAPI 异步框架 的通用项目脚手架,旨在帮助开发者快速构建具备健壮架构和可扩展性的后端服务。它内置标准开发模块(CRUD、数据模型、路由、数据结构)与企业级最佳实践,让你从繁杂的基础构建中解放出来,专注于业务逻辑。


✨ 项目亮点

  • 🚀 异步架构:基于 FastAPI 异步框架,支持高并发处理。
  • 🧱 模块化结构:标准化目录,包含 crud/models/routes/schemas/ 等核心模块。
  • 🔒 JWT 鉴权体系:内置安全的 Token 授权与用户认证机制。
  • 🧬 SQLModel 数据建模:采用 SQLModel 统一 ORM 模型与 Pydantic Schema。
  • 📦 Pydantic V2.0 支持:新一代数据校验体系,更快更强。
  • 🔄 全面强大的 CRUD 函数:支持列表/分页/模糊查询(like/in/between等)及聚合(count/max/avg等)操作。
  • 📊 日志跟踪系统:基于 Python logging 优化配置,便于调试和生产环境日志分析。
  • ⚙️ 代码生成器:基于模型定义,可一键生成整套 CRUD + Routes + Schemas。
  • 🧰 丰富的工具函数:包含随机数、UUID、时间戳转换、统一格式响应等实用工具。
  • ⏱️ Celery 异步任务队列:内建延迟任务处理机制,适用于邮件、通知等场景。
  • 📧 支持邮件发送:集成邮件服务,可结合延迟队列实现定时/异步发送。
  • 🛠️ 一键管理脚本:集成本地测试、开发部署、数据库初始化等一键管理命令。

📂 项目结构总览

MsPro/
├── alembic/                # 数据库升级/迁移
├── app/
│   ├── crud/               # CURD 操作
│   ├── models/             # SQLModel 模型定义
│   ├── routes/             # 路由入口
│   ├── schemas/            # Pydantic 数据结构
│   ├── tasks/              # 异步任务调度
│   ├── utils/              # 工具函数
│   └── main.py             # FastAPI 应用入口
├── logs/                   # 日志目录
├── module_generator.py     # 模型生成脚本
├── manage.sh               # 本地/部署环境一键控制脚本
├── .env                    # 环境变量配置
├── requirements.txt        # 依赖列表
└── README.md

📦 安装方式

方式一:通过 pip 安装并初始化项目

pip install mspro-python
mspro-init my_project

这将会在当前目录下生成名为 my_project/ 的完整项目脚手架。


🔧 使用指南

  1. 配置一键管理脚本manage.sh,并添加可执行权限:

    1. 调整配置
      # ==================== 配置区域 ====================
      SERVICE_NAME="ssl_manager"  # systemd 服务名称
      APP_MODULE="app.main:app"   # FastAPI 应用模块:对象,比如 app/main.py -> app
      HOST="0.0.0.0"
      PORT="8030"
      WORKERS=4
      VENV_DIR="venv"             # 虚拟环境目录,相对路径
      RELOAD_DIR="app"            # 热重载监听的目录
      REQUIREMENTS_FILE="requirements.txt"  # 项目依赖组织文件名,相对路径
      CELERY_MODULE="app.tasks.celery_task"  # Celery 应用模块路径,未设置则跳过 Celery 控制
      # ==================================================
      
    2. 添加权限
      chmod +x manage.sh
      
  2. 安装依赖:

cd my_project
python -m venv venv
./manage.sh setup
  1. 启动开发环境:
./manage.sh test
  1. 使用 module_generator.py 自动生成模块:

    1. 创建对应数据模型app/models/Demo.py
    2. 执行命令生成模块文件
      # 2.执行命令生成模块文件
      python module_generator.py Demo
      
  2. 生产环境部署/运维:

    1. 通过SFTP或CI/CD上传项目文件
    2. 执行命令
    # 部署
    ./manage.sh build
    # 运维
    ./manage.sh start/stop/restart/upgrade
    

📚 未来规划(TODO)

  • 增加部署 Dockerfile 和 CI/CD 支持
  • 提供 PostgreSQL、SQLite 切换配置

🧑‍💻 作者

由 [JENA] 设计与维护。欢迎提交 issue 与 PR 一起共建开源生态。


📄 License

本项目遵循 MIT License,详见 LICENSE 文件。

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

mspro_python-0.1.2.tar.gz (71.3 kB view details)

Uploaded Source

Built Distribution

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

mspro_python-0.1.2-py3-none-any.whl (91.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mspro_python-0.1.2.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for mspro_python-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1462c604ccb91263d415b02967693757e7b478e6d7b06f68faa09d74af5a1522
MD5 1594fabdcb4aa31f08f96f6dee684e06
BLAKE2b-256 f330da33ef2651ea70ddb30b7a60eeb66aa1468ce4eefdcd83f5e698b515eaad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mspro_python-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 91.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for mspro_python-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3db12ba3e3e133c001a93a6161222d46ad8e38edcf6f0bee2eea93ee075a02d6
MD5 2af10c1303dbf2ea00d5a64673a31dd8
BLAKE2b-256 eb4ce9fd318d87f67f77510c60ddce08674cc10794bd7f0f64098c0237e3412a

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