🐍 ThinkPython

基于 FastAPI 的企业级 Python Web 框架
像 ThinkPHP 一样简单易用,享受 FastAPI 的高性能

Python 3.8+ FastAPI 0.104+ MIT License

框架概述

ThinkPython 是一个基于 FastAPI 的企业级 Python Web 框架。设计哲学是让开发者像使用 ThinkPHP 一样简单,同时享受 FastAPI 的高性能(异步、自动 API 文档)。

💡 为什么选择 ThinkPython?

如果你用过 ThinkPHP、Spring Boot,你会感觉非常熟悉 —— 零学习成本,一条命令生成 CRUD 三层代码,专注业务逻辑。

零学习成本

如果你用过 ThinkPHP、Spring Boot,你会感觉非常熟悉

🚀

快速开发

一条命令生成 CRUD 三层代码,专注业务逻辑

🏭

生产就绪

内置日志、异常处理、缓存、JWT 认证等企业级功能

🔌

灵活扩展

支持多种数据库、多种缓存,小项目大项目都能胜任

快速开始

1. 安装

# GitHub git clone https://github.com/hongxinge/ThinkPython.git cd ThinkPython # 或 Gitee(国内镜像,更快) git clone https://gitee.com/hongxinge/think-python.git cd think-python pip install -r requirements.txt

2. 启动

python think.py run
🎉 零配置启动

默认使用 SQLite + 内存缓存,无需修改任何配置!

3. 访问

地址说明
http://localhost:8000/docs📘 API 文档(Swagger UI)
http://localhost:8000/health💚 健康检查

功能特性

功能说明
🔄 单/多模块切换配置自由切换,小项目用单模块,大项目用多模块
🗄️ 多数据库支持MySQL / PostgreSQL / SQLite / MSSQL 一键配置
💾 多缓存支持Redis / Memory / Memcached 灵活选择
🛣️ 自动路由注册控制器自动发现,无需手动注册
🏗️ 三层架构Controller / Service / Model 清晰分层
🔐 智能认证全局中间件 + 白名单跳过,配置一次即可
🖥️ CLI 工具类似 ThinkPHP 的 think 命令,快速生成代码
📦 Excel 工具内置 Excel 导入导出,支持样式、自动列宽
📁 文件工具内置文件上传下载,支持格式验证、UUID 命名

项目结构

ThinkPython/ ├── app/ # 应用目录(你主要在这里写代码) │ ├── common/ # 公共模块(跨模块共享代码) │ ├── single/ # 单模块模式(默认) │ ├── admin/ # 后台管理模块(多模块) │ └── api/ # API 模块(多模块) ├── config/ # 配置目录 ├── core/ # 核心框架层 ├── helpers/ # 助手函数 ├── router/ # 路由管理(自动注册) ├── middleware/ # 中间件 ├── utils/ # 工具类(Excel、文件) ├── uploads/ # 上传文件目录 ├── think.py # CLI 命令行工具 ├── main.py # 应用入口 └── requirements.txt # 依赖包列表

配置说明

所有配置通过 .env 文件管理(从 .env.example 复制):

核心配置

变量说明默认值
APP_DEBUG调试模式True
MODULE_MODE模块模式single / multi
ENABLED_MODULES启用模块*(自动发现)

数据库配置

变量说明默认值
DB_TYPE数据库类型sqlite
DB_HOST / DB_PORT / DB_NAME数据库连接按需配置
DB_USER / DB_PASSWORD数据库账号按需配置

缓存配置

变量说明默认值
CACHE_TYPE缓存类型memory
REDIS_HOST / REDIS_PORTRedis 连接按需配置

JWT 认证

⚠️ 安全提醒

生产环境务必修改 JWT_SECRET 为强密钥!

变量说明默认值
JWT_SECRETJWT 密钥your-secret-key...
JWT_EXPIRE_HOURSToken 过期时间24
AUTH_ENABLED是否启用认证中间件true

双 Token 机制

变量说明默认值
JWT_ACCESS_TOKEN_EXPIRE_HOURSAccess Token 过期时间2
JWT_REFRESH_TOKEN_EXPIRE_DAYSRefresh Token 过期时间7
JWT_REFRESH_TOKEN_ROTATERefresh Token 轮换机制true

API 限流

变量说明默认值
RATE_LIMIT_ENABLED是否启用限流false
RATE_LIMIT_BACKEND限流后端memory
RATE_LIMIT_IP_REQUESTSIP 每分钟最大请求数100

CLI 工具速查

python think.py run # 启动服务器 python think.py make-crud user # 根据数据库表结构生成 CRUD 三层代码 python think.py make-controller User # 创建控制器 python think.py make-model User # 创建数据模型 python think.py make-service User # 创建服务层 python think.py make-module order # 创建新模块 python think.py db-migrate # 数据库迁移 python think.py list-routes # 列出所有路由
💡 make-crud

配置好数据库后,一条命令 python think.py make-crud user 即可根据 user 表结构自动生成 Model、Controller、Service 三层完整代码,包含字段类型、注释、Pydantic 验证等。

统一响应格式

所有接口返回统一的 JSON 格式:

{ "code": 200, "message": "success", "data": {} }
方法说明
self.success(data, message)成功响应
self.error(message, code)错误响应
self.paginate(items, total, page, page_size)分页响应

文档中心

文档说明
5分钟创建第一个 API从零开始,创建完整的 CRUD 接口
数据库配置MySQL / PostgreSQL / MSSQL 配置教程
缓存使用Redis / Memcached 配置教程
多模块模式项目拆分与模块管理
公共模块跨模块共享代码的最佳实践
认证机制JWT 认证、免验证路由配置
Excel 工具Excel 导入导出使用指南
文件工具文件上传下载使用指南

部署方式

部署方式适用场景说明
Uvicorn小型项目uvicorn main:app --host 0.0.0.0 --port 8000
Gunicorn中型项目gunicorn -c deploy/gunicorn.conf.py main:app -k uvicorn.workers.UvicornWorker
Docker Compose生产环境cd deploy && docker-compose up -d

常见问题

Q: 如何切换多模块模式?

MODULE_MODE=multi ENABLED_MODULES=admin,api

Q: SQLite 数据库文件在哪?

默认在 ./data/database.db,会自动创建。

Q: 如何免验证登录、注册等接口?

在控制器中配置白名单:

class AuthController(BaseController): SKIP_AUTH_ROUTES = ["POST /auth/login", "POST /auth/register"]

Q: 如何查看执行的 SQL 语句?

DB_ECHO=True

仓库地址

平台地址
GitHubhttps://github.com/hongxinge/ThinkPython
Gitee(国内镜像)https://gitee.com/hongxinge/think-python