Python Web-FastApi和Django开发的最强平台 ZQ-Platform

zq-platform(芷青开发平台)

一个现代化的完全开源免费的企业级后台管理系统,提供 Django 和 FastAPI 双后端选择 + Vue3 + Element Plus 构建

演示链接(支持Django和FastApi)

https://django-ninja.zq-platform.cn

开源地址

https://github.com/jiangzhikj/zq-platform.git

📖 项目简介

zq-platform 是一个功能完善的企业级后台管理系统解决方案,采用前后端分离架构。提供两种后端选择:Django 5.2 + Django Ninja 或 FastAPI + SQLAlchemy 异步 ORM,前端基于 Vue 3 + Vben Admin + Element Plus 打造现代化的管理界面。

✨ 核心特性

  • 🎯 完整的 RBAC 权限系统 - 用户、角色、权限、部门、岗位多维度权限控制
  • 🔐 JWT 认证机制 - 安全的 Token 认证,支持 Access Token 和 Refresh Token
  • 📊 系统监控 - 服务器监控、Redis 监控、数据库监控,实时掌握系统状态
  • 📁 文件管理 - 完善的文件上传、下载、预览功能
  • 📝 操作日志 - 详细的登录日志和操作审计
  • 🗂️ 数据字典 - 灵活的字典管理,支持多级分类
  • 任务调度 - 基于 APScheduler 的定时任务管理
  • 🔌 WebSocket 支持 - 实时通信能力
  • 🌐 多数据库支持 - MySQL、PostgreSQL、SQL Server、SQLite
  • 🎨 现代化 UI - 响应式设计,支持暗黑模式
  • 📦 Monorepo 架构 - 基于 pnpm workspace 的前端工程化方案

🏗️ 技术栈

后端技术

Django 后端 (backend-django)

  • 核心框架: Django 5.2.7
  • API 框架: Django Ninja 1.4.5 (高性能 API 框架)
  • 认证: PyJWT 2.8.0
  • 异步任务: Celery 5.4.0 + Django Celery Beat
  • 任务调度: APScheduler 3.10.4
  • 缓存: Redis + django-redis
  • WebSocket: Django Channels 4.2
  • 数据库驱动: psycopg2-binary, pymysql, pyodbc
  • 服务器: Uvicorn 0.38.0 / Gunicorn 23.0.0
  • 其他: openpyxl, geoip2, psutil, cryptography

FastAPI 后端 (backend-fastapi)

  • 核心框架: FastAPI 0.115+
  • ORM: SQLAlchemy 2.0+ (异步)
  • 数据库: PostgreSQL 16+
  • 迁移: Alembic
  • 认证: JWT
  • 缓存: Redis
  • Python: 3.12+

前端技术

  • 核心框架: Vue 3.x
  • 构建工具: Vite 5.x
  • UI 组件库: Element Plus
  • 状态管理: Pinia
  • 路由: Vue Router
  • HTTP 客户端: Axios
  • 工具库: VueUse, dayjs, lodash-es
  • 代码规范: ESLint, Prettier, Stylelint
  • 包管理: pnpm 10.14.0
  • Monorepo: Turbo

📁 项目结构

zq-platform/ ├── backend-django/         # Django 后端 │   ├── application/         # 项目配置 │   ├── core/               # 核心业务模块 │   │   ├── auth/           # 认证授权 │   │   ├── user/           # 用户管理 │   │   ├── role/           # 角色管理 │   │   ├── permission/     # 权限管理 │   │   ├── dept/           # 部门管理 │   │   ├── post/           # 岗位管理 │   │   ├── menu/           # 菜单管理 │   │   ├── dict/           # 字典管理 │   │   ├── login_log/     # 登录日志 │   │   ├── file_manager/   # 文件管理 │   │   ├── server_monitor/ # 服务器监控 │   │   ├── redis_monitor/ # Redis 监控 │   │   ├── redis_manager/ # Redis 管理 │   │   ├── database_monitor/ # 数据库监控 │   │   └── database_manager/ # 数据库管理 │   ├── scheduler/         # 任务调度模块 │   ├── common/             # 公共模块 │   ├── env/               # 环境配置 │   ├── requirements.txt   # Python 依赖 │   └── manage.py         # Django 管理脚本 │ ├── backend-fastapi/         # FastAPI 后端(可选) │   ├── app/               # 核心应用模块 │   ├── core/               # 核心业务模块 │   ├── scheduler/         # 定时任务模块 │   ├── scripts/           # 工具脚本 │   ├── alembic/           # 数据库迁移 │   ├── env/               # 环境配置 │   ├── requirements.txt   # Python 依赖 │   └── main.py           # 应用入口 │ └── web/                   # Vue 前端 (Monorepo)   ├── apps/   │   └── web-ele/       # Element Plus 版本主应用   │       ├── src/   │       │   ├── api/   # API 接口   │       │   ├── views/ # 页面组件   │       │   ├── router/ # 路由配置   │       │   └── store/ # 状态管理   │       └── package.json   ├── packages/           # 共享包   │   ├── @core/         # 核心包   │   ├── effects/       # 副作用包   │   ├── hooks/         # Hooks   │   ├── icons/         # 图标   │   ├── locales/       # 国际化   │   ├── stores/         # 状态管理   │   └── utils/         # 工具函数   ├── internal/           # 内部工具   └── package.json       # 根配置

🚀 快速开始

环境要求

  • 后端
    • Python >= 3.10
    • MySQL >= 5.7 / PostgreSQL >= 12 / SQL Server / SQLite
    • Redis >= 5.0
  • 前端
    • Node.js >= 20.10.0
    • pnpm >= 9.12.0

后端安装

选项 1: Django 后端(推荐用于生产环境)
  1. 克隆项目

git clone https://github.com/jiangzhikj/zq-platform.git cd zq-platform/backend-django

  1. 创建虚拟环境

python -m venv venv source venv/bin/activate  # Linux/Mac # 或 venv\Scripts\activate     # Windows

  1. 安装依赖

pip install -r requirements.txt

  1. 配置环境变量

cp env # 编辑 .env 文件,配置数据库、Redis、JWT 密钥等

主要配置项:

​ # JWT 密钥 JWT_ACCESS_SECRET_KEY=your-jwt-access-secret JWT_REFRESH_SECRET_KEY=your-jwt-refresh-secret ​ # 数据库配置 DATABASE_TYPE=MYSQL # MYSQL/POSTGRESQL/SQLSERVER/SQLITE3 DATABASE_HOST=127.0.0.1 DATABASE_PORT=3306 DATABASE_USER=root DATABASE_PASSWORD=password DATABASE_NAME=zq_admin ​ # Redis 配置 REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DB=2

  1. 数据库迁移

python manage.py makemigrations core scheduler python manage.py migrate

  1. 初始化数据

python manage.py loaddata db_init.json

  1. 启动服务

# 开发环境 python manage.py runserver 0.0.0.0:8000 ​

  1. 启动任务调度器(可选)

# 生产环境 python start_scheduler.py

选项 2: FastAPI 后端(推荐用于高性能场景)
  1. 进入 FastAPI 目录

cd zq-platform/backend-fastapi

  1. 创建虚拟环境

conda create -n zq-fastapi python=3.12 conda activate zq-fastapi

  1. 安装依赖

pip install -r requirements.txt

  1. 配置环境变量

cp env/example.env env/dev.env # 编辑 env/dev.env 配置数据库连接

  1. 数据库迁移

alembic revision --autogenerate -m "init tables" alembic upgrade head ​ # 导入初始数据(可选) python scripts/loaddata.py db_init.json

  1. 启动服务

python main.py # 或 uvicorn main:app --reload --host 0.0.0.0 --port 8000

  1. 访问 API 文档

前端安装

  1. 进入前端目录

cd zq-platform/web

  1. 安装依赖

pnpm install

  1. 配置环境变量

cd apps/web-ele cp .env.development .env # 编辑 .env 文件,配置后端 API 地址

  1. 启动开发服务器

# 在 web 根目录下 pnpm dev

  1. 构建生产版本

pnpm build:ele

📝 默认账号

初始化数据后,可使用以下账号登录:

  • 账号: superadmin
  • 密码: 请查看 123456 或联系管理员

🔧 主要功能模块

系统管理

  • 用户管理: 用户的增删改查、密码重置、状态管理
  • 角色管理: 角色权限分配、数据权限控制
  • 权限管理: 接口权限、按钮权限细粒度控制
  • 部门管理: 树形部门结构管理
  • 岗位管理: 岗位信息维护
  • 菜单管理: 动态菜单配置、路由管理
  • 字典管理: 系统字典维护

系统监控

  • 服务器监控: CPU、内存、磁盘、网络实时监控
  • Redis 监控: Redis 性能指标、键值管理
  • 数据库监控: 数据库连接、性能监控
  • 登录日志: 用户登录记录、IP 地理位置

任务调度

  • 定时任务: Cron 表达式配置
  • 任务日志: 执行历史、结果查看
  • 任务管理: 启动、停止、立即执行

文件管理

  • 文件上传: 支持多文件上传
  • 文件预览: 图片、文档在线预览
  • 文件下载: 批量下载功能

🔐 API 文档

Django 后端

  • Swagger UI: http://localhost:8000/api/docs
  • ReDoc: http://localhost:8000/api/redoc

FastAPI 后端

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

🛠️ 开发指南

后端开发

  1. 添加新模块
    • core/ 或创建新 app
    • 定义 models、schemas、services、api
    • 在 router 中注册路由
  2. API 开发规范
    • 使用 Django Ninja 装饰器
    • 统一返回格式
    • 异常处理
    • 权限验证

前端开发

  1. 添加新页面
    • src/views/ 创建页面组件
    • src/router/routes/modules/ 添加路由
    • src/api/ 添加接口定义
  2. 组件开发规范
    • 使用 Element Plus 组件
    • 优先使用 Tailwind CSS
    • 支持暗黑模式
    • 图标从 @vben/icons 导入

📦 部署

  1. 后端部署
    • 使用 Gunicorn + Nginx
    • 配置 Supervisor 进程守护
    • 配置 SSL 证书
  2. 前端部署
    • 执行 pnpm build 构建
    • dist 目录部署到 Nginx
    • 配置反向代理

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

🙏 致谢


Made with ❤️ by ZQ Team

Read more

Stable Diffusion ComfyUI整合包保姆级安装指南(含汉化+云主机配置)

Stable Diffusion ComfyUI:从零部署到高效协作的全栈实践 如果你已经玩过Stable Diffusion的WebUI,可能会觉得它像一间装修精美的厨房——所有工具都摆在明面上,按钮清晰,上手就能用。但当你真正想深入烹饪,调整火候的细微变化、尝试不同食材的预处理顺序时,那种“所见即所得”的界面反而成了一种限制。这时,ComfyUI出现了,它更像一个开放式的专业后厨,所有食材(模型)、厨具(节点)和烹饪流程(工作流)都清晰地铺开,由你亲手连接。这种基于节点的可视化编程方式,不仅让你对AI图像生成的每一步都了如指掌,更在排查问题、复现效果和实现复杂工作流时,带来了前所未有的灵活性和掌控感。 然而,从“精美厨房”迁移到“专业后厨”,第一道门槛往往是环境部署。尤其是在国内网络环境下,从GitHub克隆仓库、安装Python依赖、配置模型路径,每一步都可能遇到“连接超时”或“版本冲突”的拦路虎。本文旨在为你扫清这些障碍,提供一个从本地安装、汉化配置,

本地文件深度交互新玩法:Obsidian Copilot的深度开发

本地文件深度交互新玩法:Obsidian Copilot的深度开发

前言 当 “本地知识库管理” 撞上 “AI 智能分析”,会擦出怎样的火花?试想一下:你的 Obsidian 里存着多年积累的笔记、文档,却只能手动翻阅检索;而现在,一个插件 + 蓝耘 API,就能让这些 “静态文字” 瞬间 “活” 起来 —— 自动总结核心内容、智能回答专业疑问,甚至挖掘隐藏关联!今天,就带大家拆解 Obsidian 联动蓝耘 API 的全新玩法,看看如何让本地文件从 “信息仓库” 变身 “智能助手” 。 蓝耘API KEY的创建 先进行API的创建 先点击蓝耘进行一个正常的注册流程 进入到主页之后,我们点击上方的MaaS平台 进入到平台后我们可以看到很多的大模型 不仅仅是文本生成、音频理解、视频理解还是视频生成,都有对应的大模型 每个模型都有很详细的介绍以及价格示例,用过api调用的都可以看到这个价格还是比较贴近平民的 并且可以进行在线体验的,这里是先进行思考的,

基于Llama-Factory的智能制造工单理解系统

基于Llama-Factory的智能制造工单理解系统 在现代制造工厂中,一张看似普通的工单可能隐藏着复杂的生产指令:“把上周三A线停掉的那个高压继电器项目做完,客户催得紧,至少出50套。” 这样的表述对人类操作员来说或许清晰明了——“上周三”、“A线”、“停掉的项目”都能结合上下文快速定位。但对于传统信息系统而言,这类口语化、依赖背景知识的描述却难以解析。 这正是当前智能制造推进过程中一个真实而棘手的问题:大量关键生产信息仍以非结构化文本形式流转于MES、ERP与人工之间。如何让机器真正“读懂”这些工单?近年来,大语言模型(LLM)为这一挑战提供了全新思路。但通用模型在工业场景下往往“水土不服”,需要通过领域数据微调才能具备专业理解能力。此时,开源框架 Llama-Factory 的出现,极大降低了企业定制专属工业语言模型的技术门槛。 从“读不懂”到“会推理”:为什么工单理解如此困难? 传统NLP方法通常依赖正则匹配或模板填充来提取工单字段,例如通过关键词“数量”、“型号”等定位信息。然而,现实中的工单远比预设规则复杂: * 表达方式多样:“共100台”、“总计一百件”、“

kernel77/kernel调试技巧:如何快速定位嵌入式系统问题

kernel77/kernel调试技巧:如何快速定位嵌入式系统问题 【免费下载链接】kernel 项目地址: https://gitcode.com/gh_mirrors/kernel77/kernel 在嵌入式开发中,调试是解决系统问题的关键环节。kernel77/kernel作为一款高效的嵌入式内核,提供了多种调试机制帮助开发者快速定位和解决问题。本文将分享5个实用的调试技巧,帮助你在开发过程中更高效地排查故障。 1. 利用断言(Assert)捕捉早期错误 断言是嵌入式系统中最基础也最有效的调试手段之一。kernel77/kernel在多处关键代码中使用了debug_assert!宏来验证程序状态,例如在自旋锁实现中: // kernel/src/sync/spinlock.rs debug_assert!(guard.irq_guard.is_none()); 使用技巧: * 在开发阶段保留所有断言,生产环境可通过编译选项移除 * 在关键状态转换处添加自定义断言,例如线程状态切换、资源释放等 * 结合assert_eq!