Skip to content

hongxinge/ThinkPython

Repository files navigation

ThinkPython

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

快速开始功能特性项目结构配置说明文档中心常见问题

Python 3.8+ FastAPI 0.104+ MIT License


🎯 为什么选择 ThinkPython?

零学习成本 - 如果你用过 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_PORT Redis 连接 按需配置

JWT 认证

变量 说明 默认值
JWT_SECRET JWT 密钥(⚠️ 生产环境必须修改) your-secret-key...
JWT_EXPIRE_HOURS Token 过期时间 24
AUTH_ENABLED 是否启用认证中间件 true

⚠️ 安全提醒:生产环境务必修改 JWT_SECRET 为强密钥!

双 Token 机制

变量 说明 默认值
JWT_ACCESS_TOKEN_EXPIRE_HOURS Access Token 过期时间 2
JWT_REFRESH_TOKEN_EXPIRE_DAYS Refresh Token 过期时间 7
JWT_REFRESH_TOKEN_ROTATE Refresh Token 轮换机制 true

API 限流

变量 说明 默认值
RATE_LIMIT_ENABLED 是否启用限流 false
RATE_LIMIT_BACKEND 限流后端 memory
RATE_LIMIT_IP_REQUESTS IP 每分钟最大请求数 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 验证等,详见 make-crud 文档


📖 文档中心

完整教程已移至 docs/ 目录,按需查阅:

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

📦 统一响应格式

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

❓ 常见问题

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

修改 .env

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

Q: 生产部署方式有哪些?

ThinkPython 支持多种部署方式,按需选择:

部署方式 适用场景 说明
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

完整的部署配置示例请参考 deploy/ 目录,包含 Dockerfile、docker-compose.yml、Gunicorn 配置、Nginx 配置等。


📄 许可证

ThinkPython 采用 MIT License 开源协议,完全免费,可商用。


🤝 贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/your-feature)
  3. 提交改动 (git commit -m 'Add your feature')
  4. 推送分支 (git push origin feature/your-feature)
  5. 提交 Pull Request

ThinkPython - 让 Python Web 开发更简单 🐍

About

基于 FastAPI 的企业级 Python Web 框架。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages