FastAPI + Vue3 全栈项目脚手架
Project description
FastVue CLI
FastAPI + Vue3 全栈项目脚手架,用于快速生成完整的后台管理系统项目。
功能特性
- 🚀 快速生成完整的 FastAPI + Vue3 项目结构
- 📦 支持模块化生成(自动创建模型、API、前端页面)
- 🎨 基于 Element Plus 的现代化 UI 设计
- 🔐 内置 JWT 认证和权限管理
- 📊 支持数据库自动初始化
- ⚡ 支持热重载和开发调试
- 🌍 支持中文/英文双语
- 💾 完整的后台管理系统(用户管理、角色管理、菜单管理、日志管理等)
安装
方法一: 使用 uv (推荐)
# 从源码安装
cd fastvue-cli
uv sync
uv pip install -e .
# 或者从构建的包安装
uv build
uv pip install dist/fastvue_cli-0.1.0-py3-none-any.whl
方法二: 使用 pip 直接安装
cd fastvue-cli
pip install -e .
方法三: 从构建的包安装
cd fastvue-cli
# 使用 uv 构建
uv build
# 安装构建好的包
pip install dist/fastvue_cli-0.1.0-py3-none-any.whl
快速开始
1. 创建新项目
# 交互式创建
fastvue init
# 或者直接指定参数
fastvue init my-project --db-type mysql --auth-type jwt --language zh-CN
2. 进入项目目录并配置环境
cd my-project/backend
# 复制.env.example为.env并配置数据库连接
cp .env.example .env
# 编辑.env文件,配置数据库连接信息
3. 安装依赖并启动服务
# 安装后端依赖
cd backend
pip install -r requirements.txt
# 或使用 uv (推荐)
uv sync
# 运行后端服务
python -m app.main
# 安装前端依赖(新开一个终端)
cd frontend
npm install
# 运行前端服务
npm run dev
生成的项目功能
生成的项目包含完整的后台管理系统:
后端功能
- ✅ 用户认证(登录/注册/登出)
- ✅ JWT Token管理
- ✅ 用户管理(CRUD)
- ✅ 角色管理(admin/member/user)
- ✅ 菜单管理(动态菜单)
- ✅ 权限控制(RBAC)
- ✅ 操作日志
- ✅ Token黑名单
- ✅ 邮箱验证
- ✅ 仪表盘统计
前端功能
- ✅ 登录/注册页面
- ✅ 用户管理界面
- ✅ 角色管理界面
- ✅ 菜单管理界面
- ✅ 操作日志查询
- ✅ 个人中心
- ✅ 主题切换(4种主题)
- ✅ 动态路由
- ✅ 权限控制
命令说明
初始化项目
fastvue init [项目名称]
选项:
--db-type: 数据库类型(mysql/postgresql,默认mysql)--auth-type: 认证方式(jwt,默认jwt)--language: 语言(zh-CN/en-US,默认zh-CN)--install-deps: 自动安装依赖(默认false)
生成功能模块
fastvue generate <模块名称>
示例:
# 生成用户模块
fastvue generate user
# 生成商品模块
fastvue generate product
项目结构
my-project/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # API 路由
│ │ │ └── v1/ # V1版本API
│ │ │ ├── auth/ # 认证模块
│ │ │ ├── user/ # 用户管理
│ │ │ ├── permission/ # 权限管理
│ │ │ ├── log/ # 日志模块
│ │ │ ├── security/ # 安全模块
│ │ │ └── dashboard/ # 仪表盘
│ │ ├── core/ # 核心配置
│ │ │ ├── config.py # 配置文件
│ │ │ ├── database.py # 数据库连接
│ │ │ ├── jwt.py # JWT处理
│ │ │ ├── permissions.py # 权限控制
│ │ │ ├── cors.py # CORS配置
│ │ │ ├── middleware.py # 中间件
│ │ │ ├── logging.py # 日志配置
│ │ │ └── email.py # 邮件服务
│ │ ├── models/ # 数据库模型
│ │ ├── schemas/ # 数据验证
│ │ ├── services/ # 业务逻辑
│ │ ├── main.py # 应用入口
│ │ └── init_db.py # 数据库初始化
│ ├── .env.example # 环境变量示例
│ └── pyproject.toml # 项目配置
├── frontend/ # Vue3 前端
│ ├── src/
│ │ ├── components/ # Vue 组件
│ │ ├── views/ # 页面组件
│ │ ├── api/ # API 调用
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # 状态管理
│ │ └── utils/ # 工具函数
│ ├── package.json
│ ├── vite.config.js
│ └── index.html
└── README.md
技术栈
后端
- FastAPI: 现代化的 Python Web 框架
- SQLAlchemy: ORM 数据库工具
- Pydantic: 数据验证和序列化
- JWT: 身份认证
- Python-Jose: JWT令牌处理
- Passlib: 密码加密
- PyMySQL: MySQL数据库驱动
- Uvicorn: ASGI服务器
前端
- Vue 3: 渐进式 JavaScript 框架
- Element Plus: Vue 3 UI 组件库
- Pinia: 状态管理
- Vue Router: 路由管理
- Axios: HTTP 客户端
- Vite: 极速构建工具
开发说明
- 所有注释均为中文
- 代码遵循PEP 8规范(Python)和ESLint规范(JavaScript)
- 完整的错误处理和日志记录
许可证
MIT
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
fastvue_cli-0.6.0.tar.gz
(152.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
fastvue_cli-0.6.0-py3-none-any.whl
(256.9 kB
view details)
File details
Details for the file fastvue_cli-0.6.0.tar.gz.
File metadata
- Download URL: fastvue_cli-0.6.0.tar.gz
- Upload date:
- Size: 152.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a72c9775a814ece9cb1a6b72f69b71a989bd9d2d9cded12b2fdb192c7c80c623
|
|
| MD5 |
f8512ea5d6afedfd850bf3a577d1ddf7
|
|
| BLAKE2b-256 |
2193d1ddc6f1e2e9b059642d9ab61bdfe7d670203e9c7613fa3ef5e064305ed0
|
File details
Details for the file fastvue_cli-0.6.0-py3-none-any.whl.
File metadata
- Download URL: fastvue_cli-0.6.0-py3-none-any.whl
- Upload date:
- Size: 256.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7df50610693554c233ae4080fcb5f8d97cfc38801f9a2ccd92f80e1ed049b304
|
|
| MD5 |
aa61cdd8e0481e2ef77f37ad743b7a69
|
|
| BLAKE2b-256 |
cde9b218e5b0906f0dfe97095cfa972f412af334fe91ab6426cfeb1d77ad792b
|