优化更新

This commit is contained in:
2026-09-13 22:05:39 +08:00
parent 3f8626fb10
commit cca6743f15
16 changed files with 95 additions and 95 deletions
+3 -3
View File
@@ -85,7 +85,7 @@ cp .env.example .env
# 数据库配置 # 数据库配置
DB_HOST=127.0.0.1 DB_HOST=127.0.0.1
DB_PORT=3306 DB_PORT=3306
DB_DATABASE=djangoadmin.flask.elevue DB_DATABASE=djangoadmin.flask.antdvue
DB_USERNAME=root DB_USERNAME=root
DB_PASSWORD=your_password DB_PASSWORD=your_password
@@ -112,10 +112,10 @@ python -c "import secrets; print(secrets.token_urlsafe(48))"
```bash ```bash
# 1. 登录 MySQL,创建数据库 # 1. 登录 MySQL,创建数据库
mysql -uroot -p mysql -uroot -p
CREATE DATABASE `djangoadmin.flask.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE `djangoadmin.flask.antdvue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 2. 导入数据库脚本(脚本位于 document/mysql/ 目录下) # 2. 导入数据库脚本(脚本位于 document/mysql/ 目录下)
mysql -uroot -p djangoadmin.flask.elevue < document/mysql/djangoadmin.flask.elevue.sql mysql -uroot -p djangoadmin.flask.antdvue < document/mysql/djangoadmin.flask.antdvue.sql
``` ```
:::tip 温馨提示 :::tip 温馨提示
+2 -2
View File
@@ -60,8 +60,8 @@
+ 软件作者:@小蚂蚁云团队 + 软件作者:@小蚂蚁云团队
+ 软件协议:Apache-2.0 + 软件协议:Apache-2.0
+ 官网网址:[https://www.djangoadmin.cn](https://www.djangoadmin.cn) + 官网网址:[https://www.djangoadmin.cn](https://www.djangoadmin.cn)
+ 文档网址:[http://docs.flask.elevue.djangoadmin.cn](http://docs.flask.elevue.djangoadmin.cn) + 文档网址:[http://docs.flask.antdvue.djangoadmin.cn](http://docs.flask.antdvue.djangoadmin.cn)
+ 演示地址:[http://manage.flask.elevue.djangoadmin.cn](http://manage.flask.elevue.djangoadmin.cn) + 演示地址:[http://manage.flask.antdvue.djangoadmin.cn](http://manage.flask.antdvue.djangoadmin.cn)
## 软件版本 ## 软件版本
@@ -101,7 +101,7 @@ copy .env.example .env # Windows CMD
# ============================================================ # ============================================================
# 基础配置 # 基础配置
# ============================================================ # ============================================================
FLASK_NAME=DjangoAdmin Flask+EleVue旗舰版 FLASK_NAME=DjangoAdmin Flask+AntDesign旗舰版
FLASK_VERSION=v3.0.0 FLASK_VERSION=v3.0.0
FLASK_HOST=0.0.0.0 FLASK_HOST=0.0.0.0
FLASK_PORT=8021 FLASK_PORT=8021
@@ -114,7 +114,7 @@ FLASK_DEBUG=True
DB_DRIVER=mysql DB_DRIVER=mysql
DB_HOST=127.0.0.1 DB_HOST=127.0.0.1
DB_PORT=3306 DB_PORT=3306
DB_DATABASE=djangoadmin.flask.elevue DB_DATABASE=djangoadmin.flask.antdvue
DB_USERNAME=root DB_USERNAME=root
DB_PASSWORD=your_mysql_password # 修改为真实密码 DB_PASSWORD=your_mysql_password # 修改为真实密码
DB_PREFIX=flask_ DB_PREFIX=flask_
@@ -155,10 +155,10 @@ python -c "import secrets; print(secrets.token_urlsafe(48))"
```bash ```bash
# 1. 登录 MySQL,创建数据库 # 1. 登录 MySQL,创建数据库
mysql -uroot -p mysql -uroot -p
CREATE DATABASE `djangoadmin.flask.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE `djangoadmin.flask.antdvue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 2. 导入数据库脚本(脚本位于 document/mysql/ 目录下) # 2. 导入数据库脚本(脚本位于 document/mysql/ 目录下)
mysql -uroot -p djangoadmin.flask.elevue < document/mysql/djangoadmin.flask.elevue.sql mysql -uroot -p djangoadmin.flask.antdvue < document/mysql/djangoadmin.flask.antdvue.sql
``` ```
:::tip 温馨提示 :::tip 温馨提示
@@ -7,15 +7,15 @@
``` ```
document/ document/
├── mysql/ # MySQL 脚本 ├── mysql/ # MySQL 脚本
│ └── djangoadmin.flask.elevue.sql │ └── djangoadmin.flask.antdvue.sql
├── postgresql/ # PostgreSQL 脚本 ├── postgresql/ # PostgreSQL 脚本
│ └── djangoadmin.flask.elevue.sql │ └── djangoadmin.flask.antdvue.sql
├── sqlserver/ # SQL Server 脚本 ├── sqlserver/ # SQL Server 脚本
│ └── djangoadmin.flask.elevue.sql │ └── djangoadmin.flask.antdvue.sql
├── sqlite/ # SQLite 脚本 ├── sqlite/ # SQLite 脚本
│ └── djangoadmin.flask.elevue.sql │ └── djangoadmin.flask.antdvue.sql
└── oracle/ # Oracle 脚本 └── oracle/ # Oracle 脚本
└── djangoadmin.flask.elevue.sql └── djangoadmin.flask.antdvue.sql
``` ```
:::tip 温馨提示 :::tip 温馨提示
@@ -36,7 +36,7 @@ document/
**MySQL**: **MySQL**:
```sql ```sql
CREATE DATABASE `djangoadmin.flask.elevue` CREATE DATABASE `djangoadmin.flask.antdvue`
DEFAULT CHARACTER SET utf8mb4 DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci; COLLATE utf8mb4_general_ci;
``` ```
@@ -44,7 +44,7 @@ CREATE DATABASE `djangoadmin.flask.elevue`
**PostgreSQL**: **PostgreSQL**:
```sql ```sql
CREATE DATABASE "djangoadmin.flask.elevue" CREATE DATABASE "djangoadmin.flask.antdvue"
WITH ENCODING 'UTF8' WITH ENCODING 'UTF8'
LC_COLLATE = 'zh_CN.UTF-8' LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8' LC_CTYPE = 'zh_CN.UTF-8'
@@ -54,7 +54,7 @@ CREATE DATABASE "djangoadmin.flask.elevue"
**SQL Server**: **SQL Server**:
```sql ```sql
CREATE DATABASE [djangoadmin.flask.elevue] CREATE DATABASE [djangoadmin.flask.antdvue]
COLLATE Chinese_PRC_CI_AS; COLLATE Chinese_PRC_CI_AS;
``` ```
@@ -87,27 +87,27 @@ GRANT CONNECT, RESOURCE, CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE T
```bash ```bash
# 使用 mysql 命令行导入 # 使用 mysql 命令行导入
mysql -uroot -p djangoadmin.flask.elevue < document/mysql/djangoadmin.flask.elevue.sql mysql -uroot -p djangoadmin.flask.antdvue < document/mysql/djangoadmin.flask.antdvue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/mysql/djangoadmin.flask.elevue.sql # 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/mysql/djangoadmin.flask.antdvue.sql
``` ```
**PostgreSQL**: **PostgreSQL**:
```bash ```bash
# 使用 psql 命令行导入 # 使用 psql 命令行导入
psql -U postgres -d djangoadmin.flask.elevue -f document/postgresql/djangoadmin.flask.elevue.sql psql -U postgres -d djangoadmin.flask.antdvue -f document/postgresql/djangoadmin.flask.antdvue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/postgresql/djangoadmin.flask.elevue.sql # 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/postgresql/djangoadmin.flask.antdvue.sql
``` ```
**SQL Server**: **SQL Server**:
```bash ```bash
# 使用 sqlcmd 命令行导入 # 使用 sqlcmd 命令行导入
sqlcmd -S localhost -U sa -P your_password -d djangoadmin.flask.elevue -i document/sqlserver/djangoadmin.flask.elevue.sql sqlcmd -S localhost -U sa -P your_password -d djangoadmin.flask.antdvue -i document/sqlserver/djangoadmin.flask.antdvue.sql
# 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/sqlserver/djangoadmin.flask.elevue.sql # 或使用 Navicat 等工具:右键数据库 → 运行 SQL 文件 → 选择 document/sqlserver/djangoadmin.flask.antdvue.sql
# 或使用 SSMS(SQL Server Management Studio):打开 SQL 文件 → 执行 # 或使用 SSMS(SQL Server Management Studio):打开 SQL 文件 → 执行
``` ```
@@ -115,18 +115,18 @@ sqlcmd -S localhost -U sa -P your_password -d djangoadmin.flask.elevue -i docume
```bash ```bash
# 使用 sqlite3 命令行导入 # 使用 sqlite3 命令行导入
sqlite3 ./data/app.db < document/sqlite/djangoadmin.flask.elevue.sql sqlite3 ./data/app.db < document/sqlite/djangoadmin.flask.antdvue.sql
# 或使用 Navicat 等工具:打开数据库文件 → 运行 SQL 文件 → 选择 document/sqlite/djangoadmin.flask.elevue.sql # 或使用 Navicat 等工具:打开数据库文件 → 运行 SQL 文件 → 选择 document/sqlite/djangoadmin.flask.antdvue.sql
``` ```
**Oracle**: **Oracle**:
```bash ```bash
# 使用 sqlplus 命令行导入 # 使用 sqlplus 命令行导入
sqlplus djangoadmin/your_password@127.0.0.1:1521/XE @document/oracle/djangoadmin.flask.elevue.sql sqlplus djangoadmin/your_password@127.0.0.1:1521/XE @document/oracle/djangoadmin.flask.antdvue.sql
# 或使用 Navicat 等工具:打开连接 → 运行 SQL 文件 → 选择 document/oracle/djangoadmin.flask.elevue.sql # 或使用 Navicat 等工具:打开连接 → 运行 SQL 文件 → 选择 document/oracle/djangoadmin.flask.antdvue.sql
``` ```
:::tip 温馨提示 :::tip 温馨提示
@@ -150,7 +150,7 @@ Oracle 用户需要有 CREATE TABLE、CREATE SEQUENCE、CREATE TRIGGER 权限。
DB_DRIVER=mysql # 数据库驱动类型 DB_DRIVER=mysql # 数据库驱动类型
DB_HOST=127.0.0.1 # 数据库主机地址 DB_HOST=127.0.0.1 # 数据库主机地址
DB_PORT=3306 # 数据库端口(MySQL 默认 3306) DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
DB_DATABASE=djangoadmin.flask.elevue # 数据库名称 DB_DATABASE=djangoadmin.flask.antdvue # 数据库名称
DB_USERNAME=root # 数据库用户名 DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码) DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
DB_PREFIX=flask_ # 数据表前缀 DB_PREFIX=flask_ # 数据表前缀
@@ -162,7 +162,7 @@ DB_PREFIX=flask_ # 数据表前缀
# DB_DRIVER=postgresql # 数据库驱动类型 # DB_DRIVER=postgresql # 数据库驱动类型
# DB_HOST=127.0.0.1 # 数据库主机地址 # DB_HOST=127.0.0.1 # 数据库主机地址
# DB_PORT=5432 # 数据库端口(PostgreSQL 默认 5432) # DB_PORT=5432 # 数据库端口(PostgreSQL 默认 5432)
# DB_DATABASE=djangoadmin.flask.elevue # 数据库名称 # DB_DATABASE=djangoadmin.flask.antdvue # 数据库名称
# DB_USERNAME=postgres # 数据库用户名 # DB_USERNAME=postgres # 数据库用户名
# DB_PASSWORD=your_password # 数据库密码(请修改为实际密码) # DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
# DB_PREFIX=flask_ # 数据表前缀 # DB_PREFIX=flask_ # 数据表前缀
@@ -174,7 +174,7 @@ DB_PREFIX=flask_ # 数据表前缀
# DB_DRIVER=mssql # 数据库驱动类型 # DB_DRIVER=mssql # 数据库驱动类型
# DB_HOST=127.0.0.1 # 数据库主机地址 # DB_HOST=127.0.0.1 # 数据库主机地址
# DB_PORT=1433 # 数据库端口(SQL Server 默认 1433) # DB_PORT=1433 # 数据库端口(SQL Server 默认 1433)
# DB_DATABASE=djangoadmin.flask.elevue # 数据库名称 # DB_DATABASE=djangoadmin.flask.antdvue # 数据库名称
# DB_USERNAME=sa # 数据库用户名 # DB_USERNAME=sa # 数据库用户名
# DB_PASSWORD=your_password # 数据库密码(请修改为实际密码) # DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
# DB_PREFIX=flask_ # 数据表前缀 # DB_PREFIX=flask_ # 数据表前缀
@@ -263,11 +263,11 @@ $ python scripts/setup_db.py --drop-first
[INFO] ============================================================ [INFO] ============================================================
[INFO] 检测数据库驱动: mysql [INFO] 检测数据库驱动: mysql
[INFO] 连接 MySQL 服务器: 127.0.0.1:3306 [INFO] 连接 MySQL 服务器: 127.0.0.1:3306
[INFO] 数据库配置: root@127.0.0.1:3306/djangoadmin.flask.elevue [INFO] 数据库配置: root@127.0.0.1:3306/djangoadmin.flask.antdvue
[INFO] 数据表前缀: flask_ [INFO] 数据表前缀: flask_
[INFO] 删除已有数据库: djangoadmin.flask.elevue [INFO] 删除已有数据库: djangoadmin.flask.antdvue
[INFO] 创建数据库: djangoadmin.flask.elevue [INFO] 创建数据库: djangoadmin.flask.antdvue
[INFO] 查找数据库脚本: document\mysql\djangoadmin.flask.elevue.sql [INFO] 查找数据库脚本: document\mysql\djangoadmin.flask.antdvue.sql
[INFO] 导入 SQL 脚本... [INFO] 导入 SQL 脚本...
[INFO] SQL 脚本导入完成: 784510 条语句 [INFO] SQL 脚本导入完成: 784510 条语句
[INFO] 创建数据表... [INFO] 创建数据表...
@@ -394,30 +394,30 @@ flask db stamp head
```bash ```bash
# 备份数据库 # 备份数据库
mysqldump -uroot -p djangoadmin.flask.elevue > backup.sql mysqldump -uroot -p djangoadmin.flask.antdvue > backup.sql
# 恢复数据库 # 恢复数据库
mysql -uroot -p djangoadmin.flask.elevue < backup.sql mysql -uroot -p djangoadmin.flask.antdvue < backup.sql
``` ```
+ PostgreSQL 备份 + PostgreSQL 备份
```bash ```bash
# 备份数据库 # 备份数据库
pg_dump -U postgres djangoadmin.flask.elevue > backup.sql pg_dump -U postgres djangoadmin.flask.antdvue > backup.sql
# 恢复数据库 # 恢复数据库
psql -U postgres djangoadmin.flask.elevue < backup.sql psql -U postgres djangoadmin.flask.antdvue < backup.sql
``` ```
+ SQL Server 备份 + SQL Server 备份
```bash ```bash
# 备份数据库 # 备份数据库
sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [djangoadmin.flask.elevue] TO DISK = 'backup.bak'" sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [djangoadmin.flask.antdvue] TO DISK = 'backup.bak'"
# 恢复数据库 # 恢复数据库
sqlcmd -S localhost -U sa -P your_password -Q "RESTORE DATABASE [djangoadmin.flask.elevue] FROM DISK = 'backup.bak'" sqlcmd -S localhost -U sa -P your_password -Q "RESTORE DATABASE [djangoadmin.flask.antdvue] FROM DISK = 'backup.bak'"
# 或使用 Navicat 等工具进行备份恢复 # 或使用 Navicat 等工具进行备份恢复
# 或使用 SSMS(SQL Server Management Studio):右键数据库 → 任务 → 备份 / 还原 # 或使用 SSMS(SQL Server Management Studio):右键数据库 → 任务 → 备份 / 还原
+12 -12
View File
@@ -57,7 +57,7 @@ cp .env.example .env
# ============================================================ # ============================================================
DB_HOST=127.0.0.1 # 数据库主机地址(本地容器) DB_HOST=127.0.0.1 # 数据库主机地址(本地容器)
DB_PORT=3306 # 数据库端口(MySQL 默认 3306) DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
DB_DATABASE=djangoadmin.flask.elevue # 数据库名称 DB_DATABASE=djangoadmin.flask.antdvue # 数据库名称
DB_USERNAME=root # 数据库用户名 DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码) DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
DB_PREFIX=flask_ # 数据表前缀 DB_PREFIX=flask_ # 数据表前缀
@@ -93,7 +93,7 @@ python -c "import secrets; print(secrets.token_urlsafe(48))"
```yaml ```yaml
# +====================================================================== # +======================================================================
# | 模块: Docker Compose 配置 # | 模块: Docker Compose 配置
# | 说明: Flask+EleVue 应用服务容器编排 # | 说明: Flask+AntDesign 应用服务容器编排
# +====================================================================== # +======================================================================
version: '3.7' version: '3.7'
# ============================================================ # ============================================================
@@ -103,11 +103,11 @@ services:
# ------------------------------------------------------------ # ------------------------------------------------------------
# 后端服务 # 后端服务
# ------------------------------------------------------------ # ------------------------------------------------------------
flask_elevue: flask_antdvue:
# 构建镜像名称 # 构建镜像名称
image: flask_elevue image: flask_antdvue
# 容器运行时名称 # 容器运行时名称
container_name: flask_elevue container_name: flask_antdvue
# 镜像构建配置 # 镜像构建配置
build: build:
context: ./ # 构建上下文路径(项目根目录) context: ./ # 构建上下文路径(项目根目录)
@@ -181,7 +181,7 @@ docker compose up -d
[+] Building 45.2s (12/12) FINISHED [+] Building 45.2s (12/12) FINISHED
[+] Running 2/2 [+] Running 2/2
✔ Network djangoadmin_default Created ✔ Network djangoadmin_default Created
✔ Container flask_elevue Started ✔ Container flask_antdvue Started
``` ```
:::tip 访问服务 :::tip 访问服务
@@ -215,7 +215,7 @@ docker compose logs -f
docker compose logs --tail 100 docker compose logs --tail 100
# 查看指定服务日志 # 查看指定服务日志
docker compose logs -f flask_elevue docker compose logs -f flask_antdvue
``` ```
+ 停止与重启 + 停止与重启
@@ -245,10 +245,10 @@ docker compose up --build
```bash ```bash
# 进入运行中的容器终端 # 进入运行中的容器终端
docker compose exec flask_elevue bash docker compose exec flask_antdvue bash
# 在容器内执行 Python 命令 # 在容器内执行 Python 命令
docker compose exec flask_elevue python -c "print('hello')" docker compose exec flask_antdvue python -c "print('hello')"
``` ```
## 环境变量注入 ## 环境变量注入
@@ -257,10 +257,10 @@ Docker 模式下,环境变量通过 `env_file` 从 `.env` 文件注入到容
```bash ```bash
# 使用 --env-file 指定环境变量文件 # 使用 --env-file 指定环境变量文件
docker run --env-file .env flask_elevue docker run --env-file .env flask_antdvue
# 通过 -e 参数覆盖单个变量 # 通过 -e 参数覆盖单个变量
docker run -e FLASK_PORT=9090 flask_elevue docker run -e FLASK_PORT=9090 flask_antdvue
``` ```
:::tip 温馨提示 :::tip 温馨提示
@@ -315,7 +315,7 @@ ports:
```bash ```bash
# 查看容器日志排查原因 # 查看容器日志排查原因
docker compose logs flask_elevue docker compose logs flask_antdvue
``` ```
常见原因:`JWT_SALT` 未配置、数据库连接失败、Redis 连接失败。 常见原因:`JWT_SALT` 未配置、数据库连接失败、Redis 连接失败。
@@ -12,7 +12,7 @@
| 变量名 | 默认值 | 说明 | | 变量名 | 默认值 | 说明 |
|:----|:----|:----| |:----|:----|:----|
| FLASK_NAME | DjangoAdmin Flask+EleVue旗舰版 | 应用名称,用于界面显示和系统标识 | | FLASK_NAME | DjangoAdmin Flask+AntDesign旗舰版 | 应用名称,用于界面显示和系统标识 |
| FLASK_VERSION | v3.0.0 | 应用版本号 | | FLASK_VERSION | v3.0.0 | 应用版本号 |
| FLASK_HOST | 0.0.0.0 | 应用监听地址。`127.0.0.1` 仅本地访问;容器/生产建议 `0.0.0.0` | | FLASK_HOST | 0.0.0.0 | 应用监听地址。`127.0.0.1` 仅本地访问;容器/生产建议 `0.0.0.0` |
| FLASK_PORT | 8021 | 应用监听端口 | | FLASK_PORT | 8021 | 应用监听端口 |
@@ -23,7 +23,7 @@
| FLASK_USE_RELOADER | False | 是否禁用自动重启。仅在 `FLASK_DEBUG=True` 时生效 | | FLASK_USE_RELOADER | False | 是否禁用自动重启。仅在 `FLASK_DEBUG=True` 时生效 |
| FLASK_SECRET_KEY | `<必填>` | Flask 应用密钥,用于 Session 加密和 CSRF 保护,**必填**且至少 16 字符 | | FLASK_SECRET_KEY | `<必填>` | Flask 应用密钥,用于 Session 加密和 CSRF 保护,**必填**且至少 16 字符 |
| FLASK_UPLOAD_DIR | ./uploads | 文件上传存储目录 | | FLASK_UPLOAD_DIR | ./uploads | 文件上传存储目录 |
| FLASK_FILE_URL | http://file.flask.elevue | 文件访问域名,用于拼接上传文件的访问 URL | | FLASK_FILE_URL | http://file.flask.antdvue | 文件访问域名,用于拼接上传文件的访问 URL |
| UPLOAD_ALLOWED_EXTS | .jpg,.jpeg,.png,.gif,...,.zip | 允许上传的文件扩展名,逗号分隔(带点号) | | UPLOAD_ALLOWED_EXTS | .jpg,.jpeg,.png,.gif,...,.zip | 允许上传的文件扩展名,逗号分隔(带点号) |
| UPLOAD_MAX_SIZE_MB | 10 | 上传文件大小上限(MB) | | UPLOAD_MAX_SIZE_MB | 10 | 上传文件大小上限(MB) |
@@ -38,7 +38,7 @@
| DB_DRIVER | mysql | 数据库驱动。可选:`mysql` / `postgresql` / `mssql` / `oracle` / `sqlite` | | DB_DRIVER | mysql | 数据库驱动。可选:`mysql` / `postgresql` / `mssql` / `oracle` / `sqlite` |
| DB_HOST | 127.0.0.1 | 数据库地址(`sqlite` 时忽略) | | DB_HOST | 127.0.0.1 | 数据库地址(`sqlite` 时忽略) |
| DB_PORT | 3306 | 数据库端口(`sqlite` 时忽略) | | DB_PORT | 3306 | 数据库端口(`sqlite` 时忽略) |
| DB_DATABASE | djangoadmin.flask.elevue | 数据库名称。`sqlite` 时作为数据库文件完整路径 | | DB_DATABASE | djangoadmin.flask.antdvue | 数据库名称。`sqlite` 时作为数据库文件完整路径 |
| DB_USERNAME | root | 数据库账号(`sqlite` 时忽略) | | DB_USERNAME | root | 数据库账号(`sqlite` 时忽略) |
| DB_PASSWORD | CHANGE_ME_DB_PASSWORD | 数据库密码,**必填**(`sqlite` 除外) | | DB_PASSWORD | CHANGE_ME_DB_PASSWORD | 数据库密码,**必填**(`sqlite` 除外) |
| DB_PREFIX | flask_ | 数据表前缀,所有业务表名自动添加此前缀。模型中通过 `DB_PREFIX + "position"` 拼接表名 | | DB_PREFIX | flask_ | 数据表前缀,所有业务表名自动添加此前缀。模型中通过 `DB_PREFIX + "position"` 拼接表名 |
@@ -175,7 +175,7 @@ CORS_ALLOWED_ORIGINS=http://localhost:8001,http://192.168.1.100:8001
# ============================================================ # ============================================================
# 基础服务配置 # 基础服务配置
# ============================================================ # ============================================================
FLASK_NAME=DjangoAdmin Flask+EleVue旗舰版 # 应用名称 FLASK_NAME=DjangoAdmin Flask+AntDesign旗舰版 # 应用名称
FLASK_VERSION=v3.0.0 # 应用版本号 FLASK_VERSION=v3.0.0 # 应用版本号
FLASK_HOST=127.0.0.1 # 服务监听地址(127.0.0.1 仅本地访问,0.0.0.0 允许外部访问) FLASK_HOST=127.0.0.1 # 服务监听地址(127.0.0.1 仅本地访问,0.0.0.0 允许外部访问)
FLASK_PORT=8021 # 服务监听端口 FLASK_PORT=8021 # 服务监听端口
@@ -183,7 +183,7 @@ FLASK_ENV=development # 运行环境(development / testin
FLASK_DEBUG=True # 调试模式开关(True 开启,生产环境请设为 False) FLASK_DEBUG=True # 调试模式开关(True 开启,生产环境请设为 False)
FLASK_DEMO=False # 演示模式开关(True 开启后将限制部分写操作) FLASK_DEMO=False # 演示模式开关(True 开启后将限制部分写操作)
FLASK_SECRET_KEY=your_secret_key_at_least_16_chars # Flask 应用密钥(必填,至少 16 字符) FLASK_SECRET_KEY=your_secret_key_at_least_16_chars # Flask 应用密钥(必填,至少 16 字符)
FLASK_FILE_URL=http://file.flask.elevue # 文件服务地址(用于访问上传的文件) FLASK_FILE_URL=http://file.flask.antdvue # 文件服务地址(用于访问上传的文件)
# ============================================================ # ============================================================
# 数据库配置 # 数据库配置
@@ -191,7 +191,7 @@ FLASK_FILE_URL=http://file.flask.elevue # 文件服务地址(用于访问
DB_DRIVER=mysql # 数据库类型(mysql / postgresql / mssql / sqlite / oracle) DB_DRIVER=mysql # 数据库类型(mysql / postgresql / mssql / sqlite / oracle)
DB_HOST=127.0.0.1 # 数据库主机地址 DB_HOST=127.0.0.1 # 数据库主机地址
DB_PORT=3306 # 数据库端口(MySQL 默认 3306) DB_PORT=3306 # 数据库端口(MySQL 默认 3306)
DB_DATABASE=djangoadmin.flask.elevue # 数据库名称 DB_DATABASE=djangoadmin.flask.antdvue # 数据库名称
DB_USERNAME=root # 数据库用户名 DB_USERNAME=root # 数据库用户名
DB_PASSWORD=your_password # 数据库密码(请修改为实际密码) DB_PASSWORD=your_password # 数据库密码(请修改为实际密码)
DB_PREFIX=flask_ # 数据表前缀(用于区分不同应用的同库表) DB_PREFIX=flask_ # 数据表前缀(用于区分不同应用的同库表)
@@ -187,7 +187,7 @@ mysql>
```sql ```sql
-- 创建数据库(UTF-8 编码) -- 创建数据库(UTF-8 编码)
CREATE DATABASE `djangoadmin.flask.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE `djangoadmin.flask.antdvue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 查看数据库 -- 查看数据库
SHOW DATABASES; SHOW DATABASES;
+2 -2
View File
@@ -83,7 +83,7 @@ mysql -h127.0.0.1 -P3306 -uroot -p
# 如果是权限问题,授权用户 # 如果是权限问题,授权用户
mysql -uroot -p mysql -uroot -p
GRANT ALL PRIVILEGES ON `djangoadmin.flask.elevue`.* TO 'root'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON `djangoadmin.flask.antdvue`.* TO 'root'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
``` ```
@@ -382,7 +382,7 @@ ls static/fonts/Vera.ttf
# .env 中的上传配置 # .env 中的上传配置
UPLOAD_ALLOWED_EXTS=.jpg,.jpeg,.png,.gif,.bmp,.ico,.txt,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.mp3,.mp4,.zip,.rar,.7z 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 UPLOAD_MAX_SIZE_MB=10
FLASK_FILE_URL=http://file.flask.elevue FLASK_FILE_URL=http://file.flask.antdvue
``` ```
:::tip 温馨提示 :::tip 温馨提示
@@ -307,7 +307,7 @@ def _normalize_driver(driver: str) -> str:
DB_DRIVER = _normalize_driver(os.getenv('DB_DRIVER', 'mysql')) DB_DRIVER = _normalize_driver(os.getenv('DB_DRIVER', 'mysql'))
DB_HOST = os.getenv('DB_HOST', '127.0.0.1') DB_HOST = os.getenv('DB_HOST', '127.0.0.1')
DB_PORT = int(os.getenv('DB_PORT', '3306')) DB_PORT = int(os.getenv('DB_PORT', '3306'))
DB_DATABASE = os.getenv('DB_DATABASE', 'djangoadmin.flask.elevue') DB_DATABASE = os.getenv('DB_DATABASE', 'djangoadmin.flask.antdvue')
DB_USERNAME = os.getenv('DB_USERNAME', 'root') DB_USERNAME = os.getenv('DB_USERNAME', 'root')
DB_PASSWORD = os.getenv('DB_PASSWORD', '') DB_PASSWORD = os.getenv('DB_PASSWORD', '')
@@ -27,7 +27,7 @@
|:----|:----|:----| |:----|:----|:----|
| `UPLOAD_ALLOWED_EXTS` | `.jpg,.jpeg,.png,.gif,...,.zip` | 允许上传的文件扩展名(逗号分隔,带点号) | | `UPLOAD_ALLOWED_EXTS` | `.jpg,.jpeg,.png,.gif,...,.zip` | 允许上传的文件扩展名(逗号分隔,带点号) |
| `UPLOAD_MAX_SIZE_MB` | `10` | 上传文件大小上限(MB) | | `UPLOAD_MAX_SIZE_MB` | `10` | 上传文件大小上限(MB) |
| `FLASK_FILE_URL` | `http://file.flask.elevue` | 文件访问域名 | | `FLASK_FILE_URL` | `http://file.flask.antdvue` | 文件访问域名 |
| `FLASK_UPLOAD_DIR` | `uploads` | 上传文件存储目录 | | `FLASK_UPLOAD_DIR` | `uploads` | 上传文件存储目录 |
## 上传接口 ## 上传接口
@@ -180,12 +180,12 @@ pip install -r requirements.txt
# 干跑:核对源库表和行数 # 干跑:核对源库表和行数
python scripts/migrate_db.py --dry-run \ python scripts/migrate_db.py --dry-run \
--src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \ --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \
--src-user=root --src-pass=root --src-db=djangoadmin.flask.elevue --src-user=root --src-pass=root --src-db=djangoadmin.flask.antdvue
# 或使用 Make 命令 # 或使用 Make 命令
make db-migrate-dry-run ARGS="\ make db-migrate-dry-run ARGS="\
--src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \ --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \
--src-user=root --src-pass=root --src-db=djangoadmin.flask.elevue" --src-user=root --src-pass=root --src-db=djangoadmin.flask.antdvue"
``` ```
### MySQL → PostgreSQL ### MySQL → PostgreSQL
@@ -193,9 +193,9 @@ make db-migrate-dry-run ARGS="\
```bash ```bash
python scripts/migrate_db.py \ python scripts/migrate_db.py \
--src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \ --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \
--src-db=djangoadmin.flask.elevue --src-user=root --src-pass=root \ --src-db=djangoadmin.flask.antdvue --src-user=root --src-pass=root \
--dst-driver=postgresql --dst-host=localhost --dst-port=5432 \ --dst-driver=postgresql --dst-host=localhost --dst-port=5432 \
--dst-db=djangoadmin.flask.elevue --dst-user=postgres --dst-pass=你的密码 \ --dst-db=djangoadmin.flask.antdvue --dst-user=postgres --dst-pass=你的密码 \
--drop-target-first --drop-target-first
``` ```
@@ -203,12 +203,12 @@ python scripts/migrate_db.py \
``` ```
============================================================== ==============================================================
[迁移开始] 源: mysql:djangoadmin.flask.elevue → 目标: postgresql:djangoadmin.flask.elevue [迁移开始] 源: mysql:djangoadmin.flask.antdvue → 目标: postgresql:djangoadmin.flask.antdvue
[迁移开始] 待迁移 23 张表 [迁移开始] 待迁移 23 张表
============================================================== ==============================================================
[·] [1/5] 建目标库... [·] [1/5] 建目标库...
· 正在连接 postgres 维护库... · 正在连接 postgres 维护库...
· 正在创建目标库 "djangoadmin.flask.elevue"(UTF8)... · 正在创建目标库 "djangoadmin.flask.antdvue"(UTF8)...
[✓] [1/5] 建目标库 完成(耗时 947ms) [✓] [1/5] 建目标库 完成(耗时 947ms)
[·] [2/5] 建表结构(23 张表 create_all)... [·] [2/5] 建表结构(23 张表 create_all)...
[✓] [2/5] 建表结构 完成(耗时 1.1s),23 张表 [✓] [2/5] 建表结构 完成(耗时 1.1s),23 张表
@@ -241,9 +241,9 @@ python scripts/migrate_db.py \
```bash ```bash
python scripts/migrate_db.py \ python scripts/migrate_db.py \
--src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \ --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \
--src-db=djangoadmin.flask.elevue --src-user=root --src-pass=root \ --src-db=djangoadmin.flask.antdvue --src-user=root --src-pass=root \
--dst-driver=mssql --dst-host=localhost --dst-port=1433 \ --dst-driver=mssql --dst-host=localhost --dst-port=1433 \
--dst-db=djangoadmin.flask.elevue --dst-user=sa --dst-pass=你的密码 \ --dst-db=djangoadmin.flask.antdvue --dst-user=sa --dst-pass=你的密码 \
--drop-target-first --drop-target-first
``` ```
@@ -256,8 +256,8 @@ python scripts/migrate_db.py \
```bash ```bash
python scripts/migrate_db.py \ python scripts/migrate_db.py \
--src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \ --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \
--src-db=djangoadmin.flask.elevue --src-user=root --src-pass=root \ --src-db=djangoadmin.flask.antdvue --src-user=root --src-pass=root \
--dst-driver=sqlite --dst-db=D:/data/djangoadmin.flask.elevue.db \ --dst-driver=sqlite --dst-db=D:/data/djangoadmin.flask.antdvue.db \
--drop-target-first --drop-target-first
``` ```
@@ -272,7 +272,7 @@ python scripts/migrate_db.py \
```bash ```bash
python scripts/migrate_db.py \ python scripts/migrate_db.py \
--src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \ --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 \
--src-db=djangoadmin.flask.elevue --src-user=root --src-pass=root \ --src-db=djangoadmin.flask.antdvue --src-user=root --src-pass=root \
--dst-driver=oracle --dst-host=localhost --dst-port=1521 \ --dst-driver=oracle --dst-host=localhost --dst-port=1521 \
--dst-db=ORCLPDB1 --dst-user=flask --dst-pass=你的密码 \ --dst-db=ORCLPDB1 --dst-user=flask --dst-pass=你的密码 \
--drop-target-first --drop-target-first
@@ -29,7 +29,7 @@
**数据库**: **数据库**:
- [ ] 安装 MySQL 8.0+ - [ ] 安装 MySQL 8.0+
- [ ] 创建数据库:`CREATE DATABASE djangoadmin.flask.elevue DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;` - [ ] 创建数据库:`CREATE DATABASE djangoadmin.flask.antdvue DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;`
- [ ] 创建数据库用户并授权 - [ ] 创建数据库用户并授权
- [ ] 修改 `.env` 中的数据库配置 - [ ] 修改 `.env` 中的数据库配置
- [ ] 初始化数据库:`python scripts/setup_db.py` - [ ] 初始化数据库:`python scripts/setup_db.py`
@@ -138,7 +138,7 @@ server {
### 数据库迁移 ### 数据库迁移
- [ ] 备份数据库:`mysqldump -uroot -p djangoadmin.flask.elevue > backup.sql` - [ ] 备份数据库:`mysqldump -uroot -p djangoadmin.flask.antdvue > backup.sql`
- [ ] 执行迁移:`flask db upgrade` - [ ] 执行迁移:`flask db upgrade`
- [ ] 验证迁移结果 - [ ] 验证迁移结果
@@ -198,7 +198,7 @@ cp -r /opt/backup/dist /opt/project/ui/dist
```bash ```bash
# 从备份恢复 # 从备份恢复
mysql -uroot -p djangoadmin.flask.elevue < backup.sql mysql -uroot -p djangoadmin.flask.antdvue < backup.sql
``` ```
## 总结 ## 总结
+10 -10
View File
@@ -58,9 +58,9 @@ Dockerfile 将 `requirements.txt` 和源码分两步 COPY,利用 Docker 层缓
version: '3.7' version: '3.7'
services: services:
flask_elevue: # 服务名称 flask_antdvue: # 服务名称
image: flask_elevue # 镜像名称 image: flask_antdvue # 镜像名称
container_name: flask_elevue # 容器名称 container_name: flask_antdvue # 容器名称
build: # 构建配置 build: # 构建配置
context: ./ # 构建上下文路径 context: ./ # 构建上下文路径
dockerfile: Dockerfile # Dockerfile 文件名 dockerfile: Dockerfile # Dockerfile 文件名
@@ -116,26 +116,26 @@ docker-compose build
docker-compose ps docker-compose ps
# 查看日志 # 查看日志
docker-compose logs -f flask_elevue docker-compose logs -f flask_antdvue
# 停止服务 # 停止服务
docker-compose down docker-compose down
# 重启服务 # 重启服务
docker-compose restart flask_elevue docker-compose restart flask_antdvue
# 进入容器 # 进入容器
docker exec -it flask_elevue bash docker exec -it flask_antdvue bash
``` ```
### 查看容器资源 ### 查看容器资源
```bash ```bash
# 查看容器资源占用 # 查看容器资源占用
docker stats flask_elevue docker stats flask_antdvue
# 查看容器日志大小 # 查看容器日志大小
docker inspect --format='{{.LogPath}}' flask_elevue docker inspect --format='{{.LogPath}}' flask_antdvue
``` ```
## 环境变量注入 ## 环境变量注入
@@ -187,7 +187,7 @@ logging:
```yaml ```yaml
services: services:
flask_elevue: flask_antdvue:
# ... 后端配置 ... # ... 后端配置 ...
nginx: nginx:
@@ -199,7 +199,7 @@ services:
- ./nginx.conf:/etc/nginx/conf.d/default.conf # Nginx 配置文件 - ./nginx.conf:/etc/nginx/conf.d/default.conf # Nginx 配置文件
- ./dist:/usr/share/nginx/html # 前端构建产物 - ./dist:/usr/share/nginx/html # 前端构建产物
depends_on: # 依赖服务 depends_on: # 依赖服务
- flask_elevue # 等待后端服务启动 - flask_antdvue # 等待后端服务启动
``` ```
## 总结 ## 总结
@@ -130,18 +130,18 @@ long_query_time = 2
mysql -uroot -p mysql -uroot -p
-- 创建数据库 -- 创建数据库
CREATE DATABASE `djangoadmin.flask.elevue` CREATE DATABASE `djangoadmin.flask.antdvue`
DEFAULT CHARACTER SET utf8mb4 DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci; COLLATE utf8mb4_general_ci;
-- 创建专用用户(生产环境不要用 root) -- 创建专用用户(生产环境不要用 root)
CREATE USER 'flask_user'@'localhost' IDENTIFIED BY 'YourStrongPassword123!'; CREATE USER 'flask_user'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON `djangoadmin.flask.elevue`.* TO 'flask_user'@'localhost'; GRANT ALL PRIVILEGES ON `djangoadmin.flask.antdvue`.* TO 'flask_user'@'localhost';
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
-- 导入数据 -- 导入数据
USE `djangoadmin.flask.elevue`; USE `djangoadmin.flask.antdvue`;
SOURCE /opt/project/document/mysql/djangoadmin.flask.elevue.sql; SOURCE /opt/project/document/mysql/djangoadmin.flask.antdvue.sql;
``` ```
## Redis 配置 ## Redis 配置
@@ -394,7 +394,7 @@ FLASK_DEBUG=false
DB_HOST=127.0.0.1 DB_HOST=127.0.0.1
DB_PORT=3306 DB_PORT=3306
DB_DRIVER=mysql DB_DRIVER=mysql
DB_DATABASE=djangoadmin.flask.elevue DB_DATABASE=djangoadmin.flask.antdvue
DB_USERNAME=flask_user DB_USERNAME=flask_user
DB_PASSWORD=YourStrongPassword123! DB_PASSWORD=YourStrongPassword123!
@@ -249,10 +249,10 @@ python -m memory_profiler app.py
```bash ```bash
# 1. 查看容器日志 # 1. 查看容器日志
docker-compose logs flask_elevue docker-compose logs flask_antdvue
# 2. 进入容器调试 # 2. 进入容器调试
docker run -it --rm flask_elevue bash docker run -it --rm flask_antdvue bash
# 3. 检查 .env 文件 # 3. 检查 .env 文件
cat .env cat .env
@@ -127,7 +127,7 @@ query = query.filter(cls.model.is_delete == 0)
``` ```
document/ # 补充文档 document/ # 补充文档
├── 数据库迁移_runbook.md # 数据库迁移操作手册 ├── 数据库迁移_runbook.md # 数据库迁移操作手册
└── djangoadmin.flask.elevue.sql # 数据库结构 SQL └── djangoadmin.flask.antdvue.sql # 数据库结构 SQL
wiki/ # VitePress 文档站 wiki/ # VitePress 文档站
├── zh/ # 中文文档 ├── zh/ # 中文文档