DjangoAdmin 数据中台解决方案(Flask + NaiveUI 版本)

DjangoAdmin Logo

## 📚 项目介绍 DjangoAdmin 数据中台解决方案是一套面向企业级应用场景的一站式敏捷开发平台。后端以 Python + Flask 为核心,前端采用 Vue3 + TypeScript + NaiveUI + Vite 构建,并通过 Vue Router 与 Pinia 实现路由和状态管理。全栈技术体系成熟稳定,可快速支撑中后台管理系统、数据中台、业务运营平台等多类项目落地。 框架以"简化开发、提升效率"为设计初衷,自研了一套个性化、可插拔的组件式开发体系,涵盖单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮等常用交互组件。开发者只需按需组合,即可完成业务页面搭建,真正实现低代码开发。 在工程化层面,框架内置代码生成器,可根据数据库表结构自动生成完整的 CRUD 模块,包括后端代码、前端页面以及菜单权限记录,将重复性的增删改查工作一键自动化,让开发者能够将精力聚焦于核心业务逻辑与差异化功能。 在架构层面,框架采用前后端分离设计:后端提供标准 API,前端独立部署并支持多端适配。权限体系基于 RBAC 模型构建,覆盖菜单权限、按钮权限、数据权限三级控制;认证采用 JWT 无状态方案,使前后端协作更加高效顺畅。后端采用 View → Service → Model 三层架构,配合 AOP 事务管理、统一响应规范与完善的开发工具链,为团队协作与长期维护提供坚实保障。 ## 🍻 项目特点 - **低代码生成** — 通过代码生成器一键生成完整模块,从数据库表定义到前后端代码、菜单权限全自动完成 - **模块化、松耦合** — 每个业务模块独立封装,互不干扰,支持按需加载 - **模块丰富、开箱即用** — 内置用户、角色、菜单、部门、字典、日志等十余个基础模块 - **前后端分离** — 前后端独立开发与部署,接口规范统一,支持多端适配 - **权限体系完善** — 基于 RBAC 模型,支持菜单权限、按钮权限、数据权限三级控制 - **认证安全可靠** — 采用无状态认证方案,易于扩展,适配多端与分布式场景 - **AOP 事务管理** — 业务代码无需手动提交或回滚,中间件自动根据响应状态处理事务 - **统一响应规范** — 接口返回格式统一,前后端协作更高效 - **开发规范、设计模式** — 代码分层清晰,职责明确,静态检查零告警,便于扩展与维护 - **完善的本地中文化支持** — 错误提示、表单验证、操作日志全面中文化 - **强大便捷的开发工具链** — 内置代码检查与格式化工具,代码质量有保障 - **设计为团队及企业使用** — 规范统一,便于多人协作与长期维护 ## 🍪 内置模块 - 用户管理:维护管理系统的用户,常规信息的维护与账号设置,支持头像上传裁剪 - 角色管理:角色菜单管理与权限分配,设置角色所拥有的菜单权限 - 菜单管理:配置系统菜单、操作权限、按钮权限标识,支持动态路由生成 - 职级管理:主要管理用户的职级信息 - 岗位管理:主要管理用户担任的职务 - 部门管理:配置系统组织机构,树结构展现支持数据权限 - 字典管理:对系统中常用的较为固定的数据进行统一维护 - 字典项管理:字典数据的明细项管理 - 配置管理:对系统的常规配置信息进行维护,网站配置管理功能统一维护 - 通知公告:系统通知公告信息发布维护 - 操作日志:记录用户关键操作,支持日志查询与审计 - 登录日志:记录用户登录信息,支持 IP 归属地解析 - 定时任务:基于 APScheduler 的定时任务管理,支持任务调度与执行日志 - 文件模板:文件模板管理与导出 - 代码生成器:根据数据库表结构自动生成前后端模块代码 ## 🚀 快速开始 ### 环境要求 - **Python** >= 3.12 - **Node.js** >= 22 - **pnpm** >= 7 - **MySQL** >= 8.0 - **Redis** >= 6.0 ## 🗄️ 数据库支持 框架默认支持 **MySQL** 数据库,同时也支持多种数据库,可根据实际业务场景灵活切换。 | 数据库 | 驱动 | 支持情况 | | --- | --- | --- | | MySQL | PyMySQL 1.1.2 | ✅ 默认支持 | | PostgreSQL | psycopg2-binary 2.9.10 | ✅ 支持 | | SQL Server | pymssql 2.3.3 | ✅ 支持 | | Oracle | oracledb 2.5.1(thin 模式,无需 Oracle Client) | ✅ 支持 | | SQLite | Python 内置 | ✅ 支持 | ## 📁 项目结构 ``` ├── src/ # Flask 后端源码目录 │ ├── app.py # 应用工厂(create_app()) │ ├── extensions.py # Flask 扩展注册 │ ├── models_registry.py # 模型注册中心 │ ├── routes/ # 路由注册 │ │ └── v1.py # API v1 路由注册中心(/api/v1 前缀) │ ├── middleware/ # 中间件 │ │ ├── auth.py # JWT 登录校验 + 白名单 │ │ ├── demo.py # 演示模式限制 │ │ ├── transaction.py # AOP 事务管理 │ │ ├── operation_log.py # 操作日志记录 │ │ └── errors.py # 全局异常处理 │ ├── core/ # 核心组件 │ │ ├── database.py # SQLAlchemy 数据库初始化 │ │ ├── redis_client.py # Redis 客户端 │ │ ├── jwt.py # JWT 工具 │ │ ├── password.py # bcrypt 密码工具 │ │ ├── permission.py # RBAC 权限校验装饰器 │ │ ├── response.py # R 统一响应封装 │ │ ├── exceptions.py # BizError 业务异常 │ │ ├── security.py # 安全工具(get_user_id 等) │ │ ├── scheduler.py # APScheduler 定时任务 │ │ └── mail.py # 邮件发送 │ ├── common/ # 公共基础层 │ │ ├── base_model.py # BaseModel 基类 │ │ ├── base_db.py # BaseDB 数据库操作基类 │ │ ├── base_service.py # BaseService 服务基类(CRUD 模板方法) │ │ ├── base_repository.py # BaseRepository 数据访问基类 │ │ ├── forms/ # WTForms 表单验证 │ │ ├── constants/ # 公共常量 │ │ └── utils/ # 工具函数(JWT、响应、文件、IP 等) │ └── modules/ # 业务模块(每个模块含 router/service/model/repository) │ ├── system/ # 系统管理 │ │ ├── user/ # 用户管理 │ │ ├── role/ # 角色管理 │ │ ├── menu/ # 菜单管理 │ │ ├── dept/ # 部门管理 │ │ ├── level/ # 职级管理 │ │ └── position/ # 岗位管理 │ ├── association/ # 关联关系 │ │ ├── user_role/ # 用户-角色关联 │ │ └── role_menu/ # 角色-菜单关联 │ ├── auth/ # 登录认证 │ ├── dictionary/ # 字典管理 │ ├── configuration/ # 配置管理 │ ├── notice/ # 通知公告 │ ├── job/ # 定时任务 │ ├── job_log/ # 任务执行日志 │ ├── operation_log/ # 操作日志 │ ├── login_log/ # 登录日志 │ ├── upload/ # 文件上传 │ ├── file_template/ # 文件模板 │ ├── generator/ # 代码生成器 Web 端 │ ├── city/ # 城市数据 │ ├── cms/ # 内容管理(文章等) │ └── example/ # 示例模块(代码生成器产出的参考) ├── config/ # 配置文件目录 │ ├── __init__.py # 配置入口(加载 .env + 导出所有配置项) │ ├── app.py # 应用基础配置 │ ├── database.py # 数据库配置(多数据库支持) │ ├── redis.py # Redis 配置 │ ├── auth.py # JWT / 权限 / 白名单配置 │ ├── mail.py # 邮件配置 │ ├── sms.py # 短信配置 │ └── captcha.py # 验证码配置 ├── migrations/ # Flask-Migrate / Alembic 迁移文件 ├── scripts/ # 运维脚本 │ ├── setup_db.py # 数据库初始化(建表 + 种子数据) │ └── migrate_db.py # 跨库数据迁移工具 ├── tests/ # 单元测试 ├── docker/ # Docker 部署配置 ├── ui/ # Vue3 前端项目 │ ├── src/ │ │ ├── api/ # API 接口模块 │ │ ├── views/ # 页面视图 │ │ ├── components/ # 公共组件(BasicTable / BasicForm 等) │ │ ├── router/ # 路由配置(动态路由生成) │ │ ├── store/ # Pinia 状态管理 │ │ └── utils/ # 工具函数(Axios 封装等) │ ├── .env.development # 开发环境配置 │ ├── .env.production # 生产环境配置 │ └── package.json # 前端依赖配置 ├── generator.py # 代码生成器 CLI 入口 ├── config.json # 代码生成器配置示例 ├── gunicorn.conf.py # Gunicorn 生产部署配置 ├── app.py # WSGI 入口(开发启动) ├── pyproject.toml # Python 项目配置(black / isort / flake8) ├── requirements.txt # Python 依赖清单 ├── Makefile # 开发命令快捷入口 ├── CLAUDE.md # Claude Code 开发指南 └── .env # 环境变量配置 ``` ## 👷 软件信息 - 软件名称:DjangoAdmin 敏捷开发框架 Flask + NaiveUI 版本 - 软件作者:@小蚂蚁云 团队荣誉出品 - 软件出处:小蚂蚁云团队 - 软件协议:Apache-2.0 - 官网网址: - 文档网址: - 演示地址: ## 📌 版本说明 | 版本名称 | 版本说明 | 版本地址 | | --- | --- | --- | | Django + Layui 混编版 | 采用 Django、Layui 等框架研发 | | | Flask + Layui 混编版 | 采用 Flask、Layui 等框架研发 | | | FastAPI + Layui 混编版 | 采用 FastAPI、Layui 等框架研发 | | | Tornado + Layui 混编版 | 采用 Tornado、Layui 等框架研发 | | | Django + EleVue 前后端分离版 | 采用 Django、Vue3、TypeScript、ElementPlus 等框架研发前后端分离版本 | | | Flask + EleVue 前后端分离版 | 采用 Flask、Vue3、TypeScript、ElementPlus 等框架研发前后端分离版本 | | | FastAPI + EleVue 前后端分离版 | 采用 FastAPI、Vue3、TypeScript、ElementPlus 等框架研发前后端分离版本 | | | Tornado + EleVue 前后端分离版 | 采用 Tornado、Vue3、TypeScript、ElementPlus 等框架研发前后端分离版本 | | | Django + AntdVue 前后端分离版 | 采用 Django、Vue3、AntDesign 等框架研发前后端分离版本 | | | Flask + AntdVue 前后端分离版 | 采用 Flask、Vue3、AntDesign 等框架研发前后端分离版本 | | | FastAPI + AntdVue 前后端分离版 | 采用 FastAPI、Vue3、AntDesign 等框架研发前后端分离版本 | | | Tornado + AntdVue 前后端分离版 | 采用 Tornado、Vue3、AntDesign 等框架研发前后端分离版本 | | | Django + NaiveUI 前后端分离版 | 采用 Django、Vue3、TypeScript、NaiveUI 等框架研发前后端分离版本 | | | Flask + NaiveUI 前后端分离版 | 采用 Flask、Vue3、TypeScript、NaiveUI 等框架研发前后端分离版本 | | | FastAPI + NaiveUI 前后端分离版 | 采用 FastAPI、Vue3、TypeScript、NaiveUI 等框架研发前后端分离版本 | | | Tornado + NaiveUI 前后端分离版 | 采用 Tornado、Vue3、TypeScript、NaiveUI 等框架研发前后端分离版本 | | ## 🔧 模块展示 | | | | --- | --- | | ![模块展示1](./uploads/demo/1.png) | ![模块展示2](./uploads/demo/2.png) | | ![模块展示3](./uploads/demo/3.png) | ![模块展示4](./uploads/demo/4.png) | | ![模块展示5](./uploads/demo/5.png) | ![模块展示6](./uploads/demo/6.png) | | ![模块展示7](./uploads/demo/7.png) | ![模块展示8](./uploads/demo/8.png) | | ![模块展示9](./uploads/demo/9.png) | ![模块展示10](./uploads/demo/10.png) | | ![模块展示11](./uploads/demo/11.png) | ![模块展示12](./uploads/demo/12.png) | | ![模块展示13](./uploads/demo/13.png) | ![模块展示14](./uploads/demo/14.png) | | ![模块展示15](./uploads/demo/15.png) | ![模块展示16](./uploads/demo/16.png) | | ![模块展示17](./uploads/demo/17.png) | ![模块展示18](./uploads/demo/18.png) | | ![模块展示19](./uploads/demo/19.png) | ![模块展示20](./uploads/demo/20.png) | | ![模块展示21](./uploads/demo/21.png) | ![模块展示22](./uploads/demo/22.png) | | ![模块展示23](./uploads/demo/23.png) | ![模块展示24](./uploads/demo/24.png) | | ![模块展示25](./uploads/demo/25.png) | ![模块展示26](./uploads/demo/26.png) | | ![模块展示27](./uploads/demo/27.png) | ![模块展示28](./uploads/demo/28.png) | ## ✨ 特别鸣谢 感谢 [Flask](https://flask.palletsprojects.com/)、[Vue](https://cn.vuejs.org/)、[TypeScript](https://www.typescriptlang.org/)、[NaiveUI](https://www.naiveui.com)、[Vite](https://cn.vitejs.dev/)、[Pinia](https://pinia.vuejs.org/)、[TailwindCSS](https://tailwindcss.com/)、[SQLAlchemy](https://www.sqlalchemy.org/)、[APScheduler](https://apscheduler.readthedocs.io/) 等优秀开源项目。