# WaitAdmin开源后台系统(Python版)
**Repository Path**: yilubenpao/waitadmin-python
## Basic Information
- **Project Name**: WaitAdmin开源后台系统(Python版)
- **Description**: 🔥🔥🔥WaitAdmin(python)是一款基于Fastapi+Vue3开发的一套快速开发通用管理后台,集成Vue常用组件,RBAC权限管理, 让开发变的简单,界面简洁清爽,后台支持多种菜单结构可满足不同人群的需求,非常适合二开做项目。
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://www.waitadmin.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 17
- **Created**: 2025-03-09
- **Last Updated**: 2025-03-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
****
WaitAdmin (Python) 通用管理系统
**项目概述**
WaitAdmin(Python)是一个采用现代技术栈构建的权限控制后台管理系统,旨在为企业提供高效、安全、易扩展的后台解决方案。
该项目由个人开发者独立开发,无法与企业级团队开发的项目在规模和资源上相提并论,是否合适需自行衡量。
系统前端采用Vue 3框架结合TypeScript,保证了界面的流畅性和代码的可维护性;
后端则选用FastAPI,以其高性能和易开发的特点,为系统提供了强大的后端支持。
PS: 非专业Python开发者, 共同学习吧。
**商用说明**
- MIT开源协议, 允许免费商用。
**在线体验**
- 官方网站:https://www.waitadmin.cn
- 前台演示:https://python-demo.waitadmin.cn
- 后台演示:https://python-demo.waitadmin.cn/admin
**后台账号**
- 登录账号:test
- 登录密码:123456
**环境要求**
| 运行环境 | 要求版本 | 推荐版本 |
|:-------|:---------|:---------|
| Python | >=3.10.* | 3.10.* |
| Mysql | >=5.7 | 5.7 |
| Nginx | 无限制 | 最新LTS版 |
| Node | >=20.* | v20.14.0 |
## 🐹 技术架构
- **后台端:** Vue3 + TypeScript + Pinia + Element Plus
- **前台端:** NuxtJs3 + TypeScript + Pinia + Element Plus
- **接口端:** FastAPI + Pydantic + Tortoise-orm
- **数据库:** MySQL>=5.7
- **缓存层:** Redis
- **服务部署:** Nginx
## 🧐 主要特性
- 路由自动根据目录自动注册
- 采用常见的MVC结构(上手更容易)
- 内置基于RBAC的权限管理的功能
- 开箱即用,内置常用的工具和组件
## 👀 内置功能
- 用户管理:该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组)
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单操作权限访问路径等。
- 角色管理:配置角色菜单权限分配
- 邮件配置:配置电子邮件发送功能
- 操作日志:系统操作日志记录和查询
- 定时任务:管理定时任务的(新增、修改、删除)
- 系统缓存:管理系统产生的缓存(可自行清理)
- 附件管理:管理用户上传的图片和视频
- 文章管理:管理文章的(新增、修改、删除)
- 文件存储:管理文件的存储(本地存储、阿里云OSS、腾讯云OSS、七牛云OSS)
- 操作日志 记录用户的登录、操作等日志信息,便于追踪和审计。
- 接口文档 FastAPI自动生成的Swagger UI接口文档,方便前后端开发人员对接。
- ....
## 🚀 快速开始
**(1) 克隆项目代码:**
```shell
git clone https://gitee.com/wafts/waitadmin-python.git
cd waitadmin-python
```
**(2) 创建虚拟环境 (可选):**
```shell
# 以下为Linux下创建虚拟环境, 如果Windows激活有一点点不一样。
# 如果您不了解虚拟环境, 建议您百度了解一下, 这在项目中很常见。
wa# python3 -m venv venv
wa# source venv/bin/activate
```
**(3) 安装核心依赖 (必选):**
- 如果安装很慢,或者失败情况,请切换到国内源,或使用魔法。
```shell
# 注意要进入到server目录
cd waitadmin-python/server
pip3 install -r requirements.txt
```
**(4) 导入数据结构:**
- 1、首先你先要创建一个数据库,字符集建议使用 `utf8mb4`, 如我创建的库是: `ts_wa`
- 2、数据结构文件在 `server/sql/install.sql`
- 3、使用`Navicat`之类的工具, 把`install.sql`导入到创建的`ts_wa`数据库里。
**(5) 修改配置文件:**
- 在`server`根目录下载的`.example.env`, 复制该示例创建最终生效的`.env`文件
```shell
cp .example.env .env
```
然后在`.env`修改里面的配置信息, 修改Mysql连接配置项,Redis配置, 根据需要自己实际情况进行修改。
```
# .env文件的内容示例
APP_DEBUG=False # 调试模式,生成环境建议关闭
SERVER_HOST=0.0.0.0 # 服务监听地址
SERVER_PORT=8200 # 服务监听端口
SERVER_RELOAD=True # 服务监听重启
SERVER_WORKERS=4 # 服务的进程数
MYSQL_HOST=127.0.0.1 # Mysql地址
MYSQL_PORT=3306 # Mysql端口
MYSQL_USERNAME=root # Mysql账号
MYSQL_PASSWORD=root # Mysql密码
MYSQL_DATABASE=ts_wa # Mysql数据库
MYSQL_PREFIX=wait_ # Mysql表前缀
MYSQL_MINSIZE=1 # 最少链接数
MYSQL_MAXSIZE=100 # 最大链接数
MYSQL_CHARSET=utf8mb4 # 字符编码
MYSQL_ECHO=False # 打印SQL
REDIS_HOST=127.0.0.1 # Redis地址
REDIS_PORT=6379 # Redis端口
REDIS_USERNAME='' # Redis账号
REDIS_PASSWORD='' # Redis密码
```
**(6) 运行项目:**
```shell
python3 manager.py
```
```shell
# 看到以下信息则表示运行成功了
INFO: Will watch for changes in these directories: ['/Applications/waitadmin-python/server']
INFO: Uvicorn running on http://0.0.0.0:8100 (Press CTRL+C to quit)
INFO: Started reloader process [4614] using StatReload
INFO: Started server process [4617]
INFO: Waiting for application startup.
INFO: Application startup complete.
```
**(7) 完毕:**
```
1、以上就是服务端的启动方式 (server)。
2、后台(admin) 与 前台(nuxtjs), 请自行按照 vue 那一套流程进行启动。
cd admin
npm install
npm run dev
```
## 演示图
## 交流群
QQ群: