169 lines
30 KiB
Plaintext
169 lines
30 KiB
Plaintext
# DjangoAdmin Tornado+NaiveUI 开发文档
|
||
|
||
> DjangoAdmin Tornado+NaiveUI 企业级中台解决方案开发者文档。内置 RBAC 权限体系、代码生成器等开箱即用功能,支持五种数据库一键切换。本文档共 138 篇,按章节组织。
|
||
|
||
## 1. 了解项目
|
||
|
||
- [更新日志](http://docs.tornado.naivevue.djangoadmin.cn/zh/changelog.html): 更新日志是项目演进的完整记录,帮助开发者和企业了解每个版本的能力变化与技术演进方向。
|
||
- [新手入门指南](http://docs.tornado.naivevue.djangoadmin.cn/zh/course.html): 详细的安装步骤请参考 环境准备 章节。
|
||
- [项目介绍](http://docs.tornado.naivevue.djangoadmin.cn/zh/introduction.html): DjangoAdmin 是企业级中台解决方案,后端基于 Tornado + SQLAlchemy,前端基于 Vue3 + NaiveUI,内置 RBAC 权限、代码生成器等开箱即用功能,
|
||
- [项目目录结构](http://docs.tornado.naivevue.djangoadmin.cn/zh/struct.html): + 保持一致性:目录结构一旦确定,应保持一致性,避免随意更改。
|
||
- [为什么选择我们?](http://docs.tornado.naivevue.djangoadmin.cn/zh/why.html): 本框架提供开箱即用的企业级中台完整解决方案,免去从零搭建成本,助力中大型企业构建统一的数字化基座。
|
||
|
||
## 2. 快速入门
|
||
|
||
- [后端启动](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/backend.html): 启动后端前,请确保已完成 环境准备 章节中的所有软件安装。
|
||
- [数据库初始化](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/database.html): 数据库初始化前,请确保已完成以下准备工作: 1. 目标数据库服务已启动(如 MySQL 8.0+) 2. .env 文件中的 DB_DRIVER 和数据库连接信息已正确配置 3. Python
|
||
- [Docker 快速部署](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/docker.html): Docker 部署适合快速体验和生产环境。
|
||
- [环境变量速查表](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/env-vars.html): 1. .env.example 是环境变量模板文件,已提交到版本控制。
|
||
- [环境准备](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/environment.html): 1. 部分软件安装后需要设置本地环境变量,便于在终端中使用命令。
|
||
- [常见问题FAQ](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/faq.html): 遇到问题时,建议先查看终端日志输出和浏览器控制台(F12)的错误信息,通常能快速定位问题原因。
|
||
- [第一个接口调试](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/first-api.html): 开始调试前,请确保已完成以下步骤: 1. 后端服务已启动(参见 后端启动) 2. 数据库已初始化(参见 数据库初始化) 3. Redis 服务已启动
|
||
- [前端启动](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume1/frontend.html): 启动前端前,请确保已完成 环境准备 章节中的 Node.js 和 pnpm 安装,并已启动后端服务(参见 后端启动)。
|
||
|
||
## 3. 模块开发实战
|
||
|
||
- [完整代码清单](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/code-list.html): 本页汇总友链(Link)模块涉及的全部文件代码,开发时可快速查阅与复制对照。
|
||
- [示例模块(Example)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/example.html): src/modules/example/ 是一个完整的示例模块,演示了标准 CRUD 模块的六文件结构和开发模式。
|
||
- [常见问题与排错](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/faq.html): 本页汇总模块开发过程中的常见问题与排错方法,开发受阻时按症状索引即可定位。
|
||
- [前端 API 层](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/fe-api.html): 前端 API 层封装后端接口的 HTTP 请求,每个业务模块对应一个 API 文件,本页讲解基于 Axios 封装的编写规范。
|
||
- [前端路由与菜单](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/fe-router.html): 本页讲解前端路由与菜单机制——路由和菜单由后端动态返回,前端只需注册路由组件映射。
|
||
- [前端页面视图](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/fe-view.html): 前端页面视图是用户直接交互的界面,本页讲解 Vue3 + NaiveUI 下一个完整 CRUD 页面的文件组成与编写方式。
|
||
- [请求处理器(Handler)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/handler.html): Handler 层是 HTTP 接口层,负责接收请求、校验权限与记录操作日志,编写新接口从本页开始。
|
||
- [数据模型(Model)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/model.html): BaseModel 是所有业务模型的基类,提供6个通用审计字段和 to_dict() 序列化方法。
|
||
- [概述与目标](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/overview.html): 其中 id、create_user、create_time、update_user、update_time、is_delete 由基类 BaseModel 自动提供,业务字段仅需定义 name、
|
||
- [权限节点配置](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/permission.html): 实际开发中,查询类权限(page、detail、list)通常合并为一个节点 sys:position:list,减少配置工作量。
|
||
- [Repository 层](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/repository.html): Repository 层是数据访问层,封装全部数据库查询操作,本页讲解基于 BaseRepository 基类的通用 CRUD 用法。
|
||
- [路由注册](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/router.html): 新模块只需两步: 1. 在 src/api/v1/ 下创建路由文件,定义 routes 列表 2. 在 router.py 的 _RESOURCE_MODULES 中追加模块导入 路由前缀
|
||
- [Pydantic Schema](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/schema.html): Schema 层负责请求数据校验,本页讲解基于 Pydantic v2 BaseModel 与 Field 的表单类定义规范。
|
||
- [Service 层](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume2/service.html): repo_cls 是 类属性,值为 Repository 类(不是实例)。
|
||
|
||
## 4. 架构设计
|
||
|
||
- [核心基类体系](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/base-classes.html): 四大基类各司其职,覆盖从数据模型到请求校验再到业务逻辑的完整链路。
|
||
- [缓存架构设计](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/cache.html): 采用两级缓存架构:第一级为进程内字典缓存(dict_util),第二级为 Redis 分布式缓存。
|
||
- [数据库设计](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/database-design.html): 所有业务表继承 base_model 基类,自动获得 6 个通用字段(id / create_user / create_time / update_user / update_time /
|
||
- [目录结构设计](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/directory.html): 目录结构遵循「按功能分组、按职责分层」的原则。
|
||
- [扩展性设计](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/extensibility.html): 遵循开闭原则(OCP):对扩展开放,对修改关闭。
|
||
- [分层架构设计](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/layer-arch.html): 采用经典的分层架构,核心原则是:依赖单向、职责单一、接口隔离。
|
||
- [整体架构图](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/overview.html): 本页从全局视角阐述系统整体技术架构,涵盖前端、后端、数据库与基础设施等核心组成,理解系统全貌时从本页开始。
|
||
- [请求完整链路](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/request-flow.html): 一个典型的 API 请求经过以下阶段:浏览器 → Nginx → Tornado → Handler 生命周期(set_default_headers → prepare →
|
||
- [安全架构设计](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/security.html): 纵深防御:认证、授权、限流、参数校验多层防护,单一防线失效时仍有其他机制兜底 最小权限:用户仅能访问已授权接口,角色权限按需分配,遵循"够用即可"原则 数据不落地:敏感信息(Token、
|
||
- [技术选型说明](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/tech-stack.html): Tornado 是 Python 生态中成熟的异步 Web 框架,基于自有事件循环实现非阻塞 I/O。
|
||
- [Tornado IOLoop 与异步模型](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume3/tornado-async.html): Tornado 基于单线程事件循环(IOLoop),Handler 方法默认为协程(async def)。
|
||
|
||
## 5. 开发指南
|
||
|
||
- [API 接口速查表](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/api-cheatsheet.html): API 接口速查表,按模块分组列出所有 RESTful 接口的请求方法、路径、说明和权限标识。
|
||
- [文章管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/article.html): 文章管理模块支持富文本编辑、分类关联、封面图片上传、图集管理等功能。
|
||
- [分类管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/category.html): 分类管理模块用于管理树形分类数据,如文章分类、产品分类等。
|
||
- [行政区划管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/city.html): 行政区划管理模块提供省市区三级行政区划数据的查询和管理能力,支持树形结构展示和下拉选择。
|
||
- [公告与链接管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/content.html): 公告、链接、城市是三个简单 CRUD 内容模块,均继承 BaseService,提供标准的增删改查接口。
|
||
- [部门/职级/岗位管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/dept.html): 部门、职级、岗位是组织架构管理的三个核心模块。
|
||
- [文件模板管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/file-template.html): 文件模板管理模块提供文件导入导出模板的管理能力,用于维护各种业务场景的 Excel/Word 等模板文件。
|
||
- [定时任务日志](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/job-log.html): 定时任务日志模块记录定时任务的执行历史,包括执行时间、执行结果、耗时等信息。
|
||
- [定时任务](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/job.html): 定时任务模块基于 APScheduler 实现,支持 Cron 表达式调度、任务执行日志、动态启停等功能。
|
||
- [菜单管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/menu.html): 菜单管理是 RBAC 权限系统的基础,负责管理系统的导航菜单和权限节点。
|
||
- [参数管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/param.html): 参数管理模块用于管理动态系统参数,与系统配置模块类似但更侧重于业务参数的灵活配置。
|
||
- [角色管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/role.html): 角色是 RBAC 权限模型的核心,连接用户和菜单(权限)。
|
||
- [用户管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/business/user.html): 用户管理是系统的核心模块,属于复杂业务模块。
|
||
- [认证流程实战](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/auth-flow.html): 登录 → Token 获取 → 权限校验 → Token 刷新 → 退出登录的完整认证链路实战说明。
|
||
- [验证码机制](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/captcha.html): 验证码是防止自动化攻击的重要安全手段。
|
||
- [系统配置管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/config.html): 系统配置模块用于管理动态的键值对配置项,与数据字典类似但更偏向系统级参数。
|
||
- [CORS 跨域配置](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/cors.html): CORS(Cross-Origin Resource Sharing)跨域资源共享是前后端分离架构必须处理的问题。
|
||
- [演示模式](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/demo-mode.html): 演示模式用于在线体验环境,开启后所有写操作(新增、编辑、删除等)将被拦截,返回"演示环境,暂无操作权限"提示。
|
||
- [数据字典使用指南](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/dict-guide.html): 数据字典的完整使用流程,从新增字典类型到在代码中使用字典数据的实操指南。
|
||
- [字典模块](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/dict.html): 数据字典用于管理系统中的枚举值和配置项,如状态、类型、性别等。
|
||
- [异常与响应处理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/exception.html): 定义了统一的响应格式和全局异常处理机制。
|
||
- [优雅关闭](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/graceful-shutdown.html): 优雅关闭确保应用在收到终止信号时,能够完成正在处理的请求、关闭数据库连接、停止定时任务调度器后再退出,避免请求中断和资源泄漏。
|
||
- [用户认证(JWT)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/jwt.html): JWT(JSON Web Token)是的核心认证机制。
|
||
- [登录日志](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/login-log.html): 登录日志记录每次登录尝试(成功/失败),包含登录账号、IP地址、浏览器信息、登录时间等。
|
||
- [登录防爆破](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/login-protect.html): 登录防爆破机制基于 Redis 实现同一 IP + 用户名维度的连续失败计数与锁定,防止暴力破解密码。
|
||
- [操作日志](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/operation-log.html): 操作日志装饰器自动记录写请求(POST/PUT/DELETE/PATCH)的操作日志,无需手动埋点。
|
||
- [权限管理(RBAC)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/rbac.html): 采用基于角色的访问控制(RBAC)模型,通过用户-角色-菜单三层关系实现细粒度的权限管理。
|
||
- [链路追踪(TraceID)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/trace-id.html): 链路追踪通过为每个请求分配唯一的 TraceID,将同一请求的所有日志串联起来,方便问题排查和性能分析。
|
||
- [参数验证(Pydantic)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/core/validator.html): 使用 Pydantic v2 进行请求参数验证。
|
||
- [API 层开发](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/api.html): 前端 API 层位于 src/api/ 目录,封装所有与后端的 HTTP 请求。
|
||
- [前端构建](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/build.html): 前端使用 Vite 构建,支持开发服务器和生产构建。
|
||
- [公共组件库](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/components.html): 项目提供丰富的公共组件,位于 ui/src/components/ 目录,基于 NaiveUI 二次封装,覆盖表格、表单、弹窗、上传、富文本编辑等常见场景。
|
||
- [BasicForm 表单](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/form.html): BasicForm 位于 src/components/Form/src/BasicForm.vue,基于 NaiveUI 的 n-form 二次封装,通过 schemas 配置化定义表单字段,
|
||
- [Hooks 组合式函数](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/hooks.html): 项目封装了一系列组合式函数(Hooks),位于 src/hooks/ 和 src/utils/ 目录,提供权限检查、异步 loading、防重复提交、实时时钟、项目配置等可复用逻辑。
|
||
- [国际化](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/i18n.html): 当前项目仅支持中文界面,NaiveUI 默认使用中文,所有界面文本直接硬编码在组件中。
|
||
- [Modal 弹窗](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/modal.html): 项目提供 BasicModal 组件(src/components/Modal/src/BasicModal.vue)和 useModal hook 管理弹窗状态。
|
||
- [权限指令 v-perm](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/perm-directive.html): v-perm 和 v-perms 是项目自定义的 Vue 指令,用于按钮级别的权限控制,无权限时自动从 DOM 中移除元素。
|
||
- [路由与菜单](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/router.html): 前端路由基于 Vue Router 4 实现动态路由生成,菜单数据从后端获取,通过 generator-routers.ts 递归生成路由表,路由守卫控制登录状态和权限。
|
||
- [前端环境与结构](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/setup.html): 前端基于 Vue3 + NaiveUI 构建,使用 pnpm 作为包管理工具,Vite 作为构建工具,TypeScript 作为开发语言。
|
||
- [Store 状态管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/store.html): 前端使用 Pinia 进行状态管理,核心模块包括 user(用户信息与权限)、asyncRoute(动态路由与菜单)、projectSetting(项目配置)、designSetting(主题设计)等。
|
||
- [样式与主题](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/style.html): 前端样式方案采用 Tailwind CSS + SCSS + NaiveUI 主题覆盖,支持深色模式切换。
|
||
- [BasicTable 表格](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/table.html): BasicTable 位于 src/components/Table/src/Table.vue,基于 NaiveUI 的 n-data-table 二次封装,提供列定义、数据请求、分页、操作列、
|
||
- [工具函数](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/utils.html): 前端工具函数位于 src/utils/ 目录,提供认证管理、本地存储、日期格式化、树结构操作、文件下载等通用能力。
|
||
- [页面视图开发](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/frontend/view.html): 页面视图位于 src/views/ 目录,每个业务模块遵循 index.vue(列表页)+ edit.vue(编辑弹窗)的标准模式,辅以 columns.ts(列定义)和
|
||
- [接口响应规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/integration/api-contract.html): 后端所有接口统一返回 R.ok() / R.failed() 格式的 JSON 响应,前端通过 VAxios 的 transformRequestData 拦截器统一解包处理。
|
||
- [字典数据联调](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/integration/dict-sync.html): 字典数据通过后端字典 API 获取,前端在下拉选择器中渲染选项。
|
||
- [权限节点联动](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/integration/perm-sync.html): 前后端权限通过统一的权限节点字符串联动,后端 @permission_required 校验权限,前端 v-perm 指令和 TableAction 的 auth 属性控制按钮显示。
|
||
- [代理配置](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/integration/proxy.html): 开发环境通过 Vite 代理转发 API 请求到后端,生产环境通过 Nginx 代理。
|
||
- [文件上传联调](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/integration/upload-sync.html): 文件上传涉及前端 Upload 组件、后端上传接口和 URL 拼接三个环节,需要前后端协同配置。
|
||
- [请求上下文(ContextVar)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/context.html): src/core/context.py 使用 Python 标准库 contextvars 管理请求级别的上下文信息,包括当前用户 ID、用户名、姓名和链路追踪 ID。
|
||
- [数据库会话](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/db-session.html): 数据库会话通过 scoped_session 实现线程级隔离,Repository 层的写操作自动 commit,BaseHandler.on_finish() 兜底关闭会话。
|
||
- [字典缓存工具](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/dict-util.html): src/common/utils/dict_util.py 提供业务字典的缓存读取能力,从 Redis 缓存中获取字典数据,缓存未命中时从数据库加载。
|
||
- [导入导出](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/excel.html): 基于 openpyxl 实现 Excel 导入导出功能,支持通过 file_template 模块管理导入模板配置。
|
||
- [通用 Helper 函数](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/helpers.html): src/common/utils/helpers.py 提供项目中广泛使用的通用工具函数,包括 ID 解析、OS/浏览器检测、参数脱敏等。
|
||
- [IP 归属地解析](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/ip-region.html): src/common/utils/ip2region.py 基于 ip2region 离线数据库,提供 IP 地址到省市区的归属地查询能力,无需网络请求。
|
||
- [日志系统](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/logger.html): 通过 Python 标准库 logging 实现结构化日志,支持控制台 + 文件双输出,日志文件按大小自动轮转。
|
||
- [密码工具](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/password.html): 采用 bcrypt 双重加盐方案存储密码,源码位于 src/core/password.py。
|
||
- [权限缓存](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/perm-cache.html): 通过 Redis 实现用户权限和菜单的缓存,采用用户级缓存 + 全局版本号双层策略。
|
||
- [统一响应封装(R 对象)](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/response.html): src/core/response.py 提供统一的 API 响应封装,所有接口返回格式为 {code, data, msg, ok}。
|
||
- [富文本过滤](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/rich-text.html): 富文本编辑器内容存在存储型 XSS 风险,通过 bleach 库实现 HTML 白名单清洗,在落盘前统一过滤危险内容。
|
||
- [文件上传完整流程](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/upload-guide.html): 富文本编辑器(如 TinyMCE、CKEditor、WangEditor 等)的图片上传同样使用此接口。
|
||
- [文件上传](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume4/tools/upload.html): 提供本地文件上传功能,支持图片和通用文件上传,内置扩展名白名单、大小限制、魔术字节校验和路径遍历防护。
|
||
|
||
## 6. 代码生成器
|
||
|
||
- [CLI 命令行使用](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/cli.html): 代码生成器 CLI 模式的使用方法,包括单表生成、批量生成、预览模式和配置导出。
|
||
- [代码生成引擎](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/code-engine.html): 代码生成引擎的工作原理,包括配置解析、模板渲染、文件写入和自动注册的完整流程。
|
||
- [配置文件详解](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/config.html): 代码生成器 JSON 配置文件的格式说明,包括模块名称、字段属性、字典编码等配置项的详细解释。
|
||
- [实战案例](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/demo.html): 以 tornado_example 演示表为完整案例,演示从建表到生成到使用的全流程。
|
||
- [常见问题](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/faq.html): 代码生成器使用过程中常见问题的原因分析和解决方案。
|
||
- [概述与架构](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/overview.html): 代码生成器的整体架构、核心模块和生成流程概述。
|
||
- [表结构解析引擎](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/parser.html): 表结构解析引擎的工作原理,从数据库读取表元数据并智能推断字段用途的过程。
|
||
- [自定义模板](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/templates.html): 代码生成器模板的 Jinja2 语法说明,包括模板变量、字段属性和自定义模板的开发方法。
|
||
- [Web 管理界面](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume5/web-ui.html): 代码生成器 Web 管理界面的使用方法,通过可视化界面操作单表生成和批量生成。
|
||
|
||
## 7. 运维部署
|
||
|
||
- [备份与恢复](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/backup.html): - 3 份数据副本(1 份生产 + 2 份备份) - 2 种不同存储介质(如本地磁盘 + 远程存储) - 1 份异地备份(防机房级灾难)
|
||
- [跨库数据迁移](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/db-cross-migrate.html): 项目提供 scripts/migrate_db.py 脚本,支持在不同数据库之间迁移数据(如 MySQL → PostgreSQL / SQL Server / SQLite / Oracle)。
|
||
- [数据库迁移](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/db-migrate.html): - 结构迁移:Alembic(自动生成 DDL 差异) - 数据迁移:scripts/migrate_db.py(跨库数据泵) - 初始化:scripts/init_db.py(全新安装一键建库)
|
||
- [部署 Checklist](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/deploy-checklist.html): 从服务器准备到应用上线的完整部署操作清单,适用于生产环境首次部署和后续版本更新。
|
||
- [Docker容器化](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/docker.html): - 环境一致性:消除"在我机器上能跑"的问题 - 快速部署:一条命令启动完整服务 - 资源隔离:应用与宿主机环境解耦
|
||
- [环境规划](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/env-plan.html): 各环境之间保持代码一致,仅通过环境变量(.env)区分配置。
|
||
- [健康检查与监控](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/monitoring.html): `` 1. 应用层:健康检查端点、业务指标 2. 系统层:CPU/内存/磁盘/网络 3. 中间件:MySQL/Redis 连接状态 4. 日志:集中式日志收集与分析 ``
|
||
- [Nginx 反向代理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/nginx.html): `` 客户端 → Nginx(80/443) ├─ / → 前端静态资源(dist/) ├─ /api/v1/... → Tornado 后端(8041) └─ /api/file/ →
|
||
- [性能调优](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/performance.html): 1. 先测量,后优化:用数据说话,避免盲目调参 2. 瓶颈优先:找到最大瓶颈,集中优化 3. 渐进式:每次只调整一个参数,观察效果
|
||
- [安全加固](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/security-hardening.html): - 最小权限:只开放必要的端口和权限 - 纵深防御:多层安全措施叠加 - 默认安全:配置默认值应为安全选项
|
||
- [Supervisor进程管理](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/supervisor.html): - Linux 服务器直接部署(非 Docker) - 需要进程自动重启和日志轮转 - 管理多个相关进程
|
||
- [故障排查手册](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/troubleshooting.html): 1. 查看日志:tail -f logs/supervisor.out.log 或 docker-compose logs -f 2. 检查配置:.env 文件、数据库连接、Redis 连接 3.
|
||
- [版本升级流程](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume6/upgrade.html): 1. 先备份,后升级 2. 先测试环境,后生产环境 3. 每次升级可回滚 4. 低峰期执行升级
|
||
|
||
## 8. 规范标准
|
||
|
||
- [API响应规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/api-response.html): - 所有接口必须通过 R.ok() 或 R.failed() 返回,禁止直接返回 dict - 成功响应 code=0,失败响应 code=1 - 响应体始终包含 code、data、msg、ok
|
||
- [代码审查清单](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/code-review.html): - 每次提交必须经过至少一人审查 - 审查关注点:正确性 > 安全性 > 可维护性 > 性能 - 审查意见应具体、可操作,避免主观评价
|
||
- [删除规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/deletion.html): - is_delete = 0:正常记录(默认值) - is_delete = 1:已删除记录 - 所有查询方法自动过滤 is_delete = 0,业务层无需关心
|
||
- [文档规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/doc-standard.html): - 文档与代码同步更新 - 使用中文编写(项目约定) - 示例代码可直接运行
|
||
- [前端 API 规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/fe-api.html): - 每个后端模块对应一个 API 文件 - 函数命名统一使用 名词 + 动词 格式(与后端保持一致) - 请求路径使用相对路径(/position/page),不含 /api/v1 前缀(由
|
||
- [前端页面规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/fe-component.html): - Vue3(Composition API + <script setup>) - NaiveUI - 自定义组件(BasicTable / BasicForm / TableAction /
|
||
- [Git提交规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/git.html): `` <type>(<scope>): <subject> <body> <footer> ``
|
||
- [Handler 层规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/handler.html): - Handler 只做请求分发,不含业务逻辑 - 通过装饰器控制权限和演示模式 - 委托 Service 处理业务逻辑 - 返回 R 封装的响应
|
||
- [分页规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/pagination.html): - 前端传递 pageNo(页码,从 1 开始)和 pageSize(每页条数) - 后端返回 {records, total, size, current, pages} 结构 - 默认每页 10
|
||
- [Pydantic Schema规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/pydantic.html): - 请求体参数必须声明为 Pydantic 模型(Form 类) - 字段约束使用 Field(...) 定义 - 自定义校验使用 @field_validator - 唯一性校验在 Schema
|
||
- [Repository层规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/repository.html): - Repository 只做数据访问原语,不处理 R 封装/序列化/业务逻辑 - 软删除由基类自动处理,子类无需关心 - 查询方法自动跳过 None 值条件
|
||
- [Service层规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/service.html): BaseService 采用模板方法模式:基类定义流程骨架,子类通过声明差异点和覆盖钩子定制行为。
|
||
- [测试规范](http://docs.tornado.naivevue.djangoadmin.cn/zh/volume7/testing.html): 1. 契约测试(Contract):验证路由、权限、表名等契约不变 2. 单元测试(Unit):验证单个函数/方法的逻辑正确性 3. 集成测试(Integration):验证模块间协作、真实数据库操作
|
||
|
||
## 附录
|
||
|
||
- [常见问题汇总](http://docs.tornado.naivevue.djangoadmin.cn/zh/faq.html): 本页汇总了项目各模块的常见问题及解决方案,按场景分类索引。
|
||
- [免责声明](http://docs.tornado.naivevue.djangoadmin.cn/zh/other/declare.html): 使用本产品前必读的法律声明,明确产品性质、使用限制与责任划分,一旦使用本产品即视为接受本声明全部条款。
|
||
- [广告赞助](http://docs.tornado.naivevue.djangoadmin.cn/zh/other/sponsor.html): 1. 投放广告不得与官方全系产品存在结构性冲突和竞争 2. 广告内容需符合国家法律法规,不得包含虚假、误导性信息 3. 广告素材需经官方审核通过后方可上线,审核周期 1-3 个工作日 4.
|