# wangsong-python-admin **Repository Path**: vmaps/wangsong-python-admin ## Basic Information - **Project Name**: wangsong-python-admin - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WangSong Python Admin RBAC权限管理系统后端 - 基于FastAPI + Pydantic + SQLAlchemy构建 ## 🚀 技术栈 ### 核心依赖(仅9个) | 框架 | 版本 | 用途 | 优势 | |------|------|------|------| | **FastAPI** | 0.109.0 | Web框架 | 自动文档、类型提示完美、异步支持 | | **Pydantic** | 2.5.3 | 数据验证 | 一行完成验证+序列化,AI友好度⭐⭐⭐⭐⭐ | | **SQLAlchemy** | 2.0.25 | ORM | Python最成熟ORM,2.0风格更简洁 | | **Alembic** | 1.13.1 | 数据库迁移 | SQLAlchemy官方工具 | | **PyJWT** | 2.8.0 | JWT认证 | 轻量级、API简单 | | **passlib** | 1.7.4 | 密码加密 | MD5加密(与Spring Boot保持一致) | | **pydantic-settings** | 2.1.0 | 配置管理 | 零学习成本、类型安全 | | **uvicorn** | 0.27.0 | ASGI服务器 | FastAPI推荐,高性能 | | **pymysql** | 1.1.0 | MySQL驱动 | 稳定可靠 | **选型原则:** - ✅ **不过度使用** - 只选必需的,拒绝臃肿 - ✅ **AI编程友好** - 类型提示完善、文档清晰 - ✅ **节省代码量** - 约定优于配置、自动化程度高 - ✅ **可维护性强** - 代码简洁、职责清晰 **与Spring Boot对比:** - 代码量减少:50%-70% - 启动时间:从5-10s降至1-2s - 内存占用:从300-500MB降至50-100MB ## ✨ 特性 - ✅ **极简设计**: 仅9个核心依赖,避免过度工程化 - ✅ **AI友好**: 完善的类型提示,AI生成代码准确率高 - ✅ **代码精简**: 相比Spring Boot减少50%-70%代码量 - ✅ **易于维护**: 清晰的分层架构(models → schemas → services → api),职责单一 - ✅ **高性能**: 异步支持,性能优异 - ✅ **自动文档**: Swagger UI + ReDoc自动生成 ## 📋 前置要求 - Python 3.10+ - MySQL 5.7+ (复用springboot-app的数据库) ## 🛠️ 快速开始 ### 1. 克隆项目 ```bash cd d:\app\vscode\wangsong-python-admin ``` ### 2. 创建虚拟环境 ```bash python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # Linux/Mac ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 配置环境变量 ```bash # 复制示例配置文件 copy .env.example .env # 编辑.env文件,修改数据库连接等信息 notepad .env ``` ### 5. 配置数据库连接 **复用springboot-app的数据库,无需初始化!** 编辑 `.env` 文件,修改数据库连接信息: ```bash notepad .env ``` 修改以下配置(与springboot-app保持一致): ```ini DATABASE_URL=mysql+pymysql://root:root@localhost:3306/springboot-app?charset=utf8mb4 ``` **注意**: - 数据库名:`springboot-app`(与Spring Boot项目相同) - 用户名/密码:根据你的MySQL配置修改 - 密码加密方式:MD5(与Spring Boot项目保持一致) ### 6. 启动服务 ```bash uvicorn app.main:app --reload --host 0.0.0.0 --port 8081 ``` ### 7. 访问API文档 - Swagger UI: http://localhost:8081/docs - ReDoc: http://localhost:8081/redoc ## 📁 项目结构 ``` wangsong-python-admin/ ├── app/ │ ├── core/ # 核心配置 │ │ ├── config.py # 应用配置 │ │ ├── security.py # JWT工具 │ │ ├── password.py # 密码加密 │ │ ├── database.py # 数据库连接 │ │ └── deps.py # 依赖注入 │ ├── models/ # 数据模型层 │ │ ├── base.py # 基础模型 │ │ └── system.py # 系统模块模型 │ ├── schemas/ # 数据传输对象 │ │ ├── response.py # 响应模型 │ │ └── system.py # 系统模块schema │ ├── services/ # 业务逻辑层 │ │ └── system.py # 系统服务 │ ├── api/ # API路由层 │ │ └── v1/ # API版本控制 │ │ ├── auth.py # 认证相关API │ │ └── system.py # 系统管理API │ └── main.py # 应用入口 ├── alembic/ # 数据库迁移 ├── .env # 环境变量 ├── .env.example # 环境变量示例 ├── requirements.txt # Python依赖 ├── TECH_STACK.md # 技术选型说明 └── README.md ``` ## 🔑 默认账号 **复用springboot-app的数据库,使用原有账号!** 默认管理员账号(与springboot-app相同): - 用户名: `admin` - 密码: `123456` (MD5加密) 如果忘记密码,可以在数据库中直接更新: ```sql UPDATE system_user SET password = MD5('新密码') WHERE username = 'admin'; ``` ## 📝 API示例 ### 登录 ```bash curl -X POST "http://localhost:8081/system/login" \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"123456"}' ``` 响应: ```json { "result": "success", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." } } ``` ### 查询用户列表 ```bash curl -X POST "http://localhost:8081/system/user/list" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"page":1,"rows":10}' ``` ## 🔧 开发指南 ### 添加新的API端点 1. 在`app/models/system.py`定义模型 2. 在`app/schemas/system.py`定义Schema 3. 在`app/services/system.py`实现业务逻辑 4. 在`app/api/v1/system.py`添加路由 ### 数据库迁移 ```bash # 自动生成迁移脚本 alembic revision --autogenerate -m "描述" # 执行迁移 alembic upgrade head # 回滚 alembic downgrade -1 ``` ## 🧪 测试 ```bash # 运行测试 pytest # 带覆盖率 pytest --cov=app ``` ## 📊 与Spring Boot对比 | 指标 | Spring Boot | FastAPI | 提升 | |------|------------|---------|------| | 核心依赖数 | 15+ | 9 | -40% | | 代码行数 | ~3000 | ~800 | -73% | | 启动时间 | 5-10s | 1-2s | -80% | | 内存占用 | 300-500MB | 50-100MB | -80% | | API文档 | 需配置 | 自动生成 | ✓ | | AI友好度 | ⭐⭐ | ⭐⭐⭐⭐⭐ | +150% | ## 🤝 贡献 欢迎提交Issue和Pull Request! ## 📄 许可证 MIT License ## 👥 作者 WangSong Team --- **享受简洁高效的开发体验!** 🎉