Skip to content

topwait/waitadmin-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


WaitAdmin (Python) 通用管理系统

wa wa wa wa

wa wa wa wa

wa wa wa

wa wa

项目概述
WaitAdmin(Python)是一个采用现代技术栈构建的权限控制后台管理系统,旨在为企业提供高效、安全、易扩展的后台解决方案。 该项目由个人开发者独立开发,无法与企业级团队开发的项目在规模和资源上相提并论,是否合适需自行衡量。 系统前端采用Vue 3框架结合TypeScript,保证了界面的流畅性和代码的可维护性; 后端则选用FastAPI,以其高性能和易开发的特点,为系统提供了强大的后端支持。
PS: 非专业Python开发者, 共同学习吧。

商用说明

  • MIT开源协议, 允许免费商用。

在线体验

后台账号

  • 登录账号: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) 克隆项目代码:

git clone https://gitee.com/wafts/waitadmin-python.git
cd waitadmin-python

(2) 创建虚拟环境 (可选):

# 以下为Linux下创建虚拟环境, 如果Windows激活有一点点不一样。
# 如果您不了解虚拟环境, 建议您百度了解一下, 这在项目中很常见。

wa# python3 -m venv venv

wa# source venv/bin/activate

(3) 安装核心依赖 (必选):

  • 如果安装很慢,或者失败情况,请切换到国内源,或使用魔法。
# 注意要进入到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文件
  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) 运行项目:

python3 manager.py
# 看到以下信息则表示运行成功了
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
    # PS: 注意调整 .env 配置文件
3、更详细的部署文档:
    https://www.waitadmin.cn/docs/python/nuxt.html

演示图

wa wa
wa wa
wa wa
wa wa
wa wa

交流群

  • 加群时请备注是Python版

QQ群: 加入QQ群

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published