优化更新

This commit is contained in:
2026-09-14 09:44:33 +08:00
parent b3a9e21254
commit 5b8e178970
60 changed files with 1243 additions and 1022 deletions
@@ -114,7 +114,7 @@ FASTAPI_DEBUG=True
DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=djangoadmin.fastapi.elevue
DB_DATABASE=djangoadmin.fastapi.antdvue
DB_USERNAME=root
DB_PASSWORD=your_mysql_password # 修改为真实密码
DB_PREFIX=fastapi_
@@ -155,10 +155,10 @@ python -c "import secrets; print(secrets.token_urlsafe(48))"
```bash
# 1. 登录 MySQL,创建数据库
mysql -uroot -p
CREATE DATABASE `djangoadmin.fastapi.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `djangoadmin.fastapi.antdvue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 2. 导入数据库脚本(脚本位于 document/mysql/ 目录下)
mysql -uroot -p djangoadmin.fastapi.elevue < document/mysql/djangoadmin.fastapi.elevue.sql
mysql -uroot -p djangoadmin.fastapi.antdvue < document/mysql/djangoadmin.fastapi.antdvue.sql
```
:::tip 温馨提示
@@ -7,15 +7,15 @@
```
document/
├── mysql/ # MySQL 脚本
│ └── djangoadmin.fastapi.elevue.sql
│ └── djangoadmin.fastapi.antdvue.sql
├── postgresql/ # PostgreSQL 脚本
│ └── djangoadmin.fastapi.elevue.sql
│ └── djangoadmin.fastapi.antdvue.sql
├── sqlserver/ # SQL Server 脚本
│ └── djangoadmin.fastapi.elevue.sql
│ └── djangoadmin.fastapi.antdvue.sql
├── sqlite/ # SQLite 脚本
│ └── djangoadmin.fastapi.elevue.sql
│ └── djangoadmin.fastapi.antdvue.sql
└── oracle/ # Oracle 脚本
└── djangoadmin.fastapi.elevue.sql
└── djangoadmin.fastapi.antdvue.sql
```
:::tip 温馨提示
@@ -36,7 +36,7 @@ document/
**MySQL**:
```sql
CREATE DATABASE `djangoadmin.fastapi.elevue`
CREATE DATABASE `djangoadmin.fastapi.antdvue`
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
```
@@ -44,7 +44,7 @@ CREATE DATABASE `djangoadmin.fastapi.elevue`
**PostgreSQL**:
```sql
CREATE DATABASE "djangoadmin.fastapi.elevue"
CREATE DATABASE "djangoadmin.fastapi.antdvue"
WITH ENCODING 'UTF8'
LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8'
@@ -54,7 +54,7 @@ CREATE DATABASE "djangoadmin.fastapi.elevue"
**SQL Server**:
```sql
CREATE DATABASE [djangoadmin.fastapi.elevue]
CREATE DATABASE [djangoadmin.fastapi.antdvue]
COLLATE Chinese_PRC_CI_AS;
```
@@ -87,27 +87,27 @@ GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE T
```bash
# 使用 mysql 命令行导入
mysql -uroot -p djangoadmin.fastapi.elevue < document/mysql/djangoadmin.fastapi.elevue.sql
mysql -uroot -p djangoadmin.fastapi.antdvue < document/mysql/djangoadmin.fastapi.antdvue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/mysql/djangoadmin.fastapi.elevue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/mysql/djangoadmin.fastapi.antdvue.sql
```
**PostgreSQL**:
```bash
# 使用 psql 命令行导入
psql -U postgres -d djangoadmin.fastapi.elevue -f document/postgresql/djangoadmin.fastapi.elevue.sql
psql -U postgres -d djangoadmin.fastapi.antdvue -f document/postgresql/djangoadmin.fastapi.antdvue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/postgresql/djangoadmin.fastapi.elevue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/postgresql/djangoadmin.fastapi.antdvue.sql
```
**SQL Server**:
```bash
# 使用 sqlcmd 命令行导入
sqlcmd -S localhost -U sa -P your_password -d djangoadmin.fastapi.elevue -i document/sqlserver/djangoadmin.fastapi.elevue.sql
sqlcmd -S localhost -U sa -P your_password -d djangoadmin.fastapi.antdvue -i document/sqlserver/djangoadmin.fastapi.antdvue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/sqlserver/djangoadmin.fastapi.elevue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/sqlserver/djangoadmin.fastapi.antdvue.sql
# 或使用 SSMS(SQL Server Management Studio):打开 SQL 文件 → 执行
```
@@ -115,18 +115,18 @@ sqlcmd -S localhost -U sa -P your_password -d djangoadmin.fastapi.elevue -i docu
```bash
# 使用 sqlite3 命令行导入
sqlite3 ./data/app.db < document/sqlite/djangoadmin.fastapi.elevue.sql
sqlite3 ./data/app.db < document/sqlite/djangoadmin.fastapi.antdvue.sql
# 或使用 Navicat 等工具:打开数据库文件 → 运行 SQL 文件 → 选择 document/sqlite/djangoadmin.fastapi.elevue.sql
# 或使用 Navicat 等工具:打开数据库文件 → 运行 SQL 文件 → 选择 document/sqlite/djangoadmin.fastapi.antdvue.sql
```
**Oracle**:
```bash
# 使用 sqlplus 命令行导入
sqlplus djangoadmin/your_password@127.0.0.1:1521/XE @document/oracle/djangoadmin.fastapi.elevue.sql
sqlplus djangoadmin/your_password@127.0.0.1:1521/XE @document/oracle/djangoadmin.fastapi.antdvue.sql
# 或使用 Navicat 等工具:打开连接 → 运行 SQL 文件 → 选择 document/oracle/djangoadmin.fastapi.elevue.sql
# 或使用 Navicat 等工具:打开连接 → 运行 SQL 文件 → 选择 document/oracle/djangoadmin.fastapi.antdvue.sql
```
:::tip 温馨提示
@@ -150,7 +150,7 @@ Oracle 用户需要有 CREATE TABLE、CREATE SEQUENCE、CREATE TRIGGER 权限。
DB_DRIVER=mysql # 数据库驱动类型
DB_HOST=127.0.0.1 # 数据库主机地址
DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
DB_DATABASE=djangoadmin.fastapi.elevue # 数据库名称
DB_DATABASE=djangoadmin.fastapi.antdvue # 数据库名称
DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
@@ -161,7 +161,7 @@ DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
# DB_DRIVER=postgresql # 数据库驱动类型
# DB_HOST=127.0.0.1 # 数据库主机地址
# DB_PORT=5432 # 数据库端口(PostgreSQL 默认 5432)
# DB_DATABASE=djangoadmin.fastapi.elevue # 数据库名称
# DB_DATABASE=djangoadmin.fastapi.antdvue # 数据库名称
# DB_USERNAME=postgres # 数据库用户名
# DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
@@ -172,7 +172,7 @@ DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
# DB_DRIVER=mssql # 数据库驱动类型
# DB_HOST=127.0.0.1 # 数据库主机地址
# DB_PORT=1433 # 数据库端口(SQL Server 默认 1433)
# DB_DATABASE=djangoadmin.fastapi.elevue # 数据库名称
# DB_DATABASE=djangoadmin.fastapi.antdvue # 数据库名称
# DB_USERNAME=sa # 数据库用户名
# DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
@@ -257,11 +257,11 @@ $ python scripts/init_db.py --drop-first
[INFO] ============================================================
[INFO] 检测数据库驱动: mysql
[INFO] 连接 MySQL 服务器: 127.0.0.1:3306
[INFO] 数据库配置: root@127.0.0.1:3306/djangoadmin.fastapi.elevue
[INFO] 数据库配置: root@127.0.0.1:3306/djangoadmin.fastapi.antdvue
[INFO] 数据表前缀: fastapi_
[INFO] 删除已有数据库: djangoadmin.fastapi.elevue
[INFO] 创建数据库: djangoadmin.fastapi.elevue
[INFO] 查找数据库脚本: document\mysql\djangoadmin.fastapi.elevue.sql
[INFO] 删除已有数据库: djangoadmin.fastapi.antdvue
[INFO] 创建数据库: djangoadmin.fastapi.antdvue
[INFO] 查找数据库脚本: document\mysql\djangoadmin.fastapi.antdvue.sql
[INFO] 导入 SQL 脚本...
[INFO] SQL 脚本导入完成: 784510 条语句
[INFO] 创建数据表...
@@ -396,30 +396,30 @@ alembic stamp head
```bash
# 备份数据库
mysqldump -uroot -p djangoadmin.fastapi.elevue > backup.sql
mysqldump -uroot -p djangoadmin.fastapi.antdvue > backup.sql
# 恢复数据库
mysql -uroot -p djangoadmin.fastapi.elevue < backup.sql
mysql -uroot -p djangoadmin.fastapi.antdvue < backup.sql
```
+ PostgreSQL 备份
```bash
# 备份数据库
pg_dump -U postgres djangoadmin.fastapi.elevue > backup.sql
pg_dump -U postgres djangoadmin.fastapi.antdvue > backup.sql
# 恢复数据库
psql -U postgres djangoadmin.fastapi.elevue < backup.sql
psql -U postgres djangoadmin.fastapi.antdvue < backup.sql
```
+ SQL Server 备份
```bash
# 备份数据库
sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [djangoadmin.fastapi.elevue] TO DISK = 'backup.bak'"
sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [djangoadmin.fastapi.antdvue] TO DISK = 'backup.bak'"
# 恢复数据库
sqlcmd -S localhost -U sa -P your_password -Q "RESTORE DATABASE [djangoadmin.fastapi.elevue] FROM DISK = 'backup.bak'"
sqlcmd -S localhost -U sa -P your_password -Q "RESTORE DATABASE [djangoadmin.fastapi.antdvue] FROM DISK = 'backup.bak'"
# 或使用 Navicat 等工具进行备份恢复
# 或使用 SSMS(SQL Server Management Studio):右键数据库 → 任务 → 备份 / 还原
@@ -57,7 +57,7 @@ cp .env.example .env
# ============================================================
DB_HOST=127.0.0.1 # 数据库主机地址(本地容器)
DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
DB_DATABASE=djangoadmin.fastapi.elevue # 数据库名称
DB_DATABASE=djangoadmin.fastapi.antdvue # 数据库名称
DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
@@ -92,7 +92,7 @@ python -c "import secrets; print(secrets.token_urlsafe(48))"
```yaml
# +======================================================================
# | 模块: Docker Compose 配置
# | 说明: FastAPI+EleVue 应用服务容器编排
# | 说明: FastAPI+AntdVue 应用服务容器编排
# +======================================================================
version: '3.7'
# ============================================================
@@ -102,11 +102,11 @@ services:
# ------------------------------------------------------------
# 后端服务
# ------------------------------------------------------------
fastapi_elevue:
fastapi_antdvue:
# 构建镜像名称
image: fastapi_elevue
image: fastapi_antdvue
# 容器运行时名称
container_name: fastapi_elevue
container_name: fastapi_antdvue
# 镜像构建配置
build:
context: ./ # 构建上下文路径(项目根目录)
@@ -180,7 +180,7 @@ docker compose up -d
[+] Building 45.2s (12/12) FINISHED
[+] Running 2/2
✔ Network djangoadmin_default Created
✔ Container fastapi_elevue Started
✔ Container fastapi_antdvue Started
```
:::tip 访问服务
@@ -214,7 +214,7 @@ docker compose logs -f
docker compose logs --tail 100
# 查看指定服务日志
docker compose logs -f fastapi_elevue
docker compose logs -f fastapi_antdvue
```
+ 停止与重启
@@ -244,10 +244,10 @@ docker compose up --build
```bash
# 进入运行中的容器终端
docker compose exec fastapi_elevue bash
docker compose exec fastapi_antdvue bash
# 在容器内执行 Python 命令
docker compose exec fastapi_elevue python -c "print('hello')"
docker compose exec fastapi_antdvue python -c "print('hello')"
```
## 环境变量注入
@@ -256,10 +256,10 @@ Docker 模式下,环境变量通过 `env_file` 从 `.env` 文件注入到容
```bash
# 使用 --env-file 指定环境变量文件
docker run --env-file .env fastapi_elevue
docker run --env-file .env fastapi_antdvue
# 通过 -e 参数覆盖单个变量
docker run -e FASTAPI_PORT=9090 fastapi_elevue
docker run -e FASTAPI_PORT=9090 fastapi_antdvue
```
:::tip 温馨提示
@@ -314,7 +314,7 @@ ports:
```bash
# 查看容器日志排查原因
docker compose logs fastapi_elevue
docker compose logs fastapi_antdvue
```
常见原因:`JWT_SALT` 未配置、数据库连接失败、Redis 连接失败。
@@ -12,7 +12,7 @@
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| FASTAPI_NAME | FastAPI+EleVue旗舰版 | 应用名称,用于界面显示和系统标识 |
| FASTAPI_NAME | FastAPI+AntdVue旗舰版 | 应用名称,用于界面显示和系统标识 |
| FASTAPI_VERSION | v3.0.0 | 应用版本号 |
| FASTAPI_HOST | 0.0.0.0 | 应用监听地址。`127.0.0.1` 仅本地访问;容器/生产建议 `0.0.0.0` |
| FASTAPI_PORT | 8031 | 应用监听端口 |
@@ -20,7 +20,7 @@
| FASTAPI_ENV | production | 运行环境:`development` / `production` / `testing` |
| FASTAPI_DEBUG | False | 是否开启调试模式。`True` 时输出详细错误堆栈和 SQL 日志,生产环境务必设为 `False` |
| FASTAPI_DEMO | False | 是否开启演示模式。`True` 时所有写操作(add/update/delete/status/batchDelete)返回"演示环境,暂无操作权限" |
| FASTAPI_FILE_URL | http://file.fastapi.elevue | 文件访问域名,用于拼接上传文件的访问 URL。`BaseService._enrich_file_urls()` 会自动为文件字段补此前缀 |
| FASTAPI_FILE_URL | http://file.fastapi.antdvue | 文件访问域名,用于拼接上传文件的访问 URL。`BaseService._enrich_file_urls()` 会自动为文件字段补此前缀 |
| UPLOAD_ALLOWED_EXTS | .jpg,.jpeg,.png,.gif,...,.zip | 允许上传的文件扩展名,逗号分隔(带点号)。`upload_size_limit_middleware` 按 `Content-Length` 提前拦截超大请求 |
| UPLOAD_MAX_SIZE_MB | 10 | 上传文件大小上限(MB) |
@@ -35,7 +35,7 @@
| DB_DRIVER | mysql | 数据库驱动。可选:`mysql` / `postgresql` / `mssql` / `oracle` / `sqlite` |
| DB_HOST | 127.0.0.1 | 数据库地址(`sqlite` 时忽略) |
| DB_PORT | 3306 | 数据库端口(`sqlite` 时忽略) |
| DB_DATABASE | djangoadmin.fastapi.elevue | 数据库名称。`sqlite` 时作为数据库文件完整路径 |
| DB_DATABASE | djangoadmin.fastapi.antdvue | 数据库名称。`sqlite` 时作为数据库文件完整路径 |
| DB_USERNAME | root | 数据库账号(`sqlite` 时忽略) |
| DB_PASSWORD | CHANGE_ME_DB_PASSWORD | 数据库密码,**必填**(`sqlite` 除外) |
| DB_PREFIX | fastapi_ | 数据表前缀,所有业务表名自动添加此前缀。模型中通过 `DB_PREFIX + "position"` 拼接表名 |
@@ -163,14 +163,14 @@ CORS_ALLOWED_ORIGINS=http://localhost:8001,http://192.168.1.100:8001
# ============================================================
# 基础服务配置
# ============================================================
FASTAPI_NAME=FastAPI+EleVue旗舰版 # 应用名称
FASTAPI_NAME=FastAPI+AntdVue旗舰版 # 应用名称
FASTAPI_VERSION=v3.0.0 # 应用版本号
FASTAPI_HOST=127.0.0.1 # 服务监听地址(127.0.0.1 仅本地访问,0.0.0.0 允许外部访问)
FASTAPI_PORT=8031 # 服务监听端口
FASTAPI_ENV=development # 运行环境(development / testing / production)
FASTAPI_DEBUG=True # 调试模式开关(True 开启,生产环境请设为 False)
FASTAPI_DEMO=False # 演示模式开关(True 开启后将限制部分写操作)
FASTAPI_FILE_URL=http://file.fastapi.elevue # 文件服务地址(用于访问上传的文件)
FASTAPI_FILE_URL=http://file.fastapi.antdvue # 文件服务地址(用于访问上传的文件)
# ============================================================
# 数据库配置
@@ -178,7 +178,7 @@ FASTAPI_FILE_URL=http://file.fastapi.elevue # 文件服务地址(用于访问
DB_DRIVER=mysql # 数据库类型(mysql / postgresql / mssql / sqlite / oracle)
DB_HOST=127.0.0.1 # 数据库主机地址
DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
DB_DATABASE=djangoadmin.fastapi.elevue # 数据库名称
DB_DATABASE=djangoadmin.fastapi.antdvue # 数据库名称
DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
DB_PREFIX=fastapi_ # 数据表前缀(用于区分不同应用的同库表)
@@ -1,6 +1,6 @@
# 环境准备
本章节介绍在本地搭建项目所需的基础环境和软件安装。项目采用 `Python` + `FastAPI` 后端、`Vue3` + `ElementPlus` 前端的分离架构,本地开发需准备以下软件。
本章节介绍在本地搭建项目所需的基础环境和软件安装。项目采用 `Python` + `FastAPI` 后端、`Vue3` + `AntDesign Vue` 前端的分离架构,本地开发需准备以下软件。
安装软件:`Python(3.12+)`、`MySQL(8.0+)`、`Redis(3.2+)`、`Node.js(22+)`、`pnpm` 等。
@@ -211,7 +211,7 @@ mysql>
```sql
-- 创建数据库(UTF-8 编码)
CREATE DATABASE `djangoadmin.fastapi.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE `djangoadmin.fastapi.antdvue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 查看数据库
SHOW DATABASES;
@@ -297,7 +297,7 @@ OK
## 安装 Node.js
`Node.js` 是前端项目的运行环境,要求 `22` 或更高版本。前端基于 `Vue3` + `ElementPlus` 构建。
`Node.js` 是前端项目的运行环境,要求 `22` 或更高版本。前端基于 `Vue3` + `AntDesign Vue` 构建。
+ 下载 Node.js
@@ -83,7 +83,7 @@ mysql -h127.0.0.1 -P3306 -uroot -p
# 如果是权限问题,授权用户
mysql -uroot -p
GRANT ALL PRIVILEGES ON `djangoadmin.fastapi.elevue`.* TO 'root'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON `djangoadmin.fastapi.antdvue`.* TO 'root'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
```
@@ -382,7 +382,7 @@ ls static/fonts/Vera.ttf
# .env 中的上传配置
UPLOAD_ALLOWED_EXTS=.jpg,.jpeg,.png,.gif,.bmp,.ico,.txt,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.mp3,.mp4,.zip,.rar,.7z
UPLOAD_MAX_SIZE_MB=10
FASTAPI_FILE_URL=http://file.fastapi.elevue
FASTAPI_FILE_URL=http://file.fastapi.antdvue
```
:::tip 温馨提示
@@ -1,6 +1,6 @@
# 前端启动
本章节介绍如何将前端项目安装依赖并启动开发服务器。前端基于 `Vue3` + `ElementPlus` + `TypeScript`+`Vite` 构建,采用组件化开发模式,支持热更新和代理配置。
本章节介绍如何将前端项目安装依赖并启动开发服务器。前端基于 `Vue3` + `AntDesign Vue` + `TypeScript`+`Vite` 构建,采用组件化开发模式,支持热更新和代理配置。
:::tip 温馨提示
启动前端前,请确保已完成 [环境准备](/zh/volume1/environment) 章节中的 `Node.js` 和 `pnpm` 安装,并已启动后端服务(参见 [后端启动](/zh/volume1/backend))。