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. 配置.env及一键管理脚本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 控制
     # ==================================================
    
    1. 添加权限
    chmod +x manage.sh
    
    1. 查看脚本帮助
    ./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.3.tar.gz (71.4 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.3-py3-none-any.whl (91.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mspro_python-0.1.3.tar.gz
  • Upload date:
  • Size: 71.4 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.3.tar.gz
Algorithm Hash digest
SHA256 30583b712fc01a501c836ff7af13677a601e2867cba8748ae4f755c5db3244be
MD5 08a629837861c2a96de758835410fdda
BLAKE2b-256 72858502523ee448a76f9bad9f91b48c9ce7af263304c6dc31a686080855c6c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mspro_python-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 91.5 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 806c4631fce38cb4d234109d01d497e4096492029cce0877c147d6d5ab14a0c0
MD5 518b1b1060da1dd57d85c2e61d820e96
BLAKE2b-256 aacd9eda09821735ce58c5093b4e6ff0eacdcba6111af2c6f14e729576531350

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