Files
djangoadmin-wiki/DjangoAdmin_Tornado_NaiveVue/zh/volume1/env-vars.md
T
2026-09-16 13:28:20 +08:00

197 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 环境变量速查表
本章节汇总了项目 `.env` 文件中所有可配置的环境变量,按功能分类整理。所有变量均可在 `.env.example` 中找到示例。
:::tip 温馨提示
1. `.env.example` 是环境变量模板文件,已提交到版本控制。真实 `.env` 文件已被 `.gitignore` 忽略。
2. 首次使用请执行 `cp .env.example .env` 复制模板后修改。
3. 带有 `必填` 标记的变量必须设置,否则应用无法正常启动。
:::
## 基础配置
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| TORNADO_NAME | Tornado+EleVue旗舰版 | 应用名称,用于界面显示和系统标识 |
| TORNADO_VERSION | v3.0.0 | 应用版本号 |
| TORNADO_HOST | 127.0.0.1 | 应用监听地址。`127.0.0.1` 仅本地访问;容器/生产建议 `0.0.0.0` |
| TORNADO_PORT | 8041 | 应用监听端口 |
| TORNADO_APP | app.py | 应用启动文件名 |
| TORNADO_ENV | development | 运行环境:`development` / `production` / `testing` |
| TORNADO_DEBUG | True | 是否开启调试模式。`True` 时输出详细错误堆栈和 SQL 日志,生产环境务必设为 `False` |
| TORNADO_DEMO | False | 是否开启演示模式。`True` 时所有写操作(add/update/delete/status/batchDelete)返回"演示环境,暂无操作权限" |
| TORNADO_CORS_ORIGINS | (空) | CORS 允许的源白名单,逗号分隔。留空则允许所有来源 |
| TORNADO_TRUST_PROXY | False | 是否信任反向代理的 X-Forwarded-For 头。为 True 时取 XFF 最左侧 IP 作为客户端真实 IP |
| TORNADO_FILE_URL | (空) | 文件访问域名,用于拼接上传文件的访问 URL |
| UPLOAD_ALLOWED_EXTS | .jpg,.jpeg,.png,...,.zip | 允许上传的文件扩展名,逗号分隔(带点号) |
| UPLOAD_MAX_SIZE_MB | 10 | 上传文件大小上限(MB) |
:::tip 安全提示
生产环境务必设置 `TORNADO_DEBUG=False`,调试模式会输出详细的错误堆栈信息,可能泄漏内部实现细节。
:::
## 数据库配置
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| DB_DRIVER | mysql | 数据库驱动。可选:`mysql` / `postgresql` / `mssql` / `oracle` / `sqlite` |
| DB_HOST | 127.0.0.1 | 数据库地址(`sqlite` 时忽略) |
| DB_PORT | 3306 | 数据库端口(`sqlite` 时忽略) |
| DB_DATABASE | djangoadmin.tornado.elevue | 数据库名称。`sqlite` 时作为数据库文件完整路径 |
| DB_USERNAME | root | 数据库账号(`sqlite` 时忽略) |
| DB_PASSWORD | (空) | 数据库密码(`sqlite` 除外) |
| DB_PREFIX | tornado_ | 数据表前缀,所有业务表名自动添加此前缀 |
| DB_DEBUG | False | 是否开启 SQL 调试日志(对应 SQLAlchemy `echo` 参数)。生产环境务必设为 `False` |
| READ_DATABASE_URL | (空) | 读库地址(读写分离,可选;留空则读写同库) |
:::tip 多数据库支持
`DB_DRIVER` 支持别名:`postgres` → `postgresql`、`sqlserver` → `mssql`、`sqlite3` → `sqlite`。切换驱动后需安装对应的 Python 驱动包(`poetry install -E postgresql` / `-E mssql` / `-E oracle`)。
:::
## Redis 缓存配置
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| REDIS_HOST | 127.0.0.1 | Redis 服务地址 |
| REDIS_PORT | 6379 | Redis 服务端口 |
| REDIS_PASSWORD | (空) | Redis 密码。`REDIS_AUTH=True` 时必填 |
| REDIS_INDEX | 0 | Redis 库索引(0-15) |
| REDIS_AUTH | True | 是否启用 Redis 认证。设为 `False` 时无需密码 |
| REDIS_DECODE_RESPONSES | True | 是否自动解码响应(bytes → str) |
:::tip 温馨提示
Redis 用于存储验证码、JWT 令牌黑名单和登录防爆破数据,是项目正常运行的必需服务。
:::
## JWT 令牌配置(必填)
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| JWT_SECRET | (空) | JWT 签名密钥,**必填**。至少 32 字节强随机值,留空或过弱应用会拒绝启动(fail-close) |
| JWT_EXPIRE_MINUTES | 20 | JWT 令牌过期时间(分钟) |
| LOGIN_FAIL_MAX | 5 | 登录失败次数上限,超过后锁定账号(防暴力破解) |
| LOGIN_LOCK_SECONDS | 300 | 登录锁定时间(秒) |
:::danger 重要提示
`JWT_SECRET` 是安全关键配置,必须设置。推荐使用以下命令生成:
```bash
python -c "import secrets; print(secrets.token_urlsafe(48))"
```
生成后请妥善保管,泄漏会导致令牌被伪造。已知不安全的默认值(如空字符串、`change-me`、`secret` 等)会在启动时被拦截。
:::
## 验证码配置
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| CAPTCHA_LENGTH | 6 | 验证码字符长度(4-6 位) |
| CAPTCHA_EXPIRE | 300 | 验证码过期时间(秒) |
| CAPTCHA_RATE_WINDOW | 60 | 验证码防刷窗口期(秒) |
| CAPTCHA_RATE_LIMIT | 20 | 窗口期内最大获取次数 |
| CAPTCHA_CHARS | 346789ABCDEFGHJKMNPQRTUVWXY | 验证码字符集(已去除易混淆字符) |
| CAPTCHA_IMAGE_WIDTH | 200 | 验证码图片宽度(像素) |
| CAPTCHA_IMAGE_HEIGHT | 60 | 验证码图片高度(像素) |
| CAPTCHA_FONT_SIZE | 30 | 验证码字体大小 |
| CAPTCHA_NOISE_LINES | 10 | 干扰线数量 |
| CAPTCHA_NOISE_DOTS | 60 | 噪点数量 |
| CAPTCHA_BYPASS_CODE | 618618 | 万能验证码(仅 TORNADO_DEMO=True 时生效) |
## 邮件配置
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| MAIL_MAILER | smtp | 邮件传输协议 |
| MAIL_SERVER | smtp.163.com | SMTP 服务器地址 |
| MAIL_PORT | 465 | SMTP 服务端口 |
| MAIL_USE_SSL | True | 是否启用 SSL 加密 |
| MAIL_USERNAME | (空) | 授权邮箱用户名 |
| MAIL_PASSWORD | (空) | 授权邮箱密码/授权码 |
| MAIL_ENCRYPTION | (空) | 邮件加密串(可选) |
| MAIL_FROM_NAME | (空) | 发件人显示名称 |
| MAIL_FROM_ADDRESS | (空) | 发件人邮箱地址 |
:::tip 温馨提示
邮件功能为预留扩展功能,暂未实现。
:::
## 日志配置
| 变量名 | 默认值 | 说明 |
|:----|:----|:----|
| LOG_LEVEL | INFO | 日志级别:DEBUG / INFO / WARNING / ERROR |
| LOG_DIR | logs | 日志输出目录 |
## 环境变量配置示例
以下是一个开发环境的 `.env` 文件示例(基于 `.env.example` 模板修改):
```bash
# ============================================================
# 基础配置
# ============================================================
TORNADO_NAME=Tornado+EleVue旗舰版
TORNADO_VERSION=v3.0.0
TORNADO_HOST=127.0.0.1
TORNADO_PORT=8041
TORNADO_ENV=development
TORNADO_DEBUG=True
TORNADO_DEMO=False
# ============================================================
# 数据库配置
# ============================================================
DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=djangoadmin.tornado.elevue
DB_USERNAME=root
DB_PASSWORD=your_password
DB_PREFIX=tornado_
DB_DEBUG=False
# ============================================================
# Redis 配置
# ============================================================
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
REDIS_INDEX=0
REDIS_AUTH=True
# ============================================================
# JWT 配置(必填)
# ============================================================
JWT_SECRET=your_generated_secret_key_here_at_least_32_bytes
JWT_EXPIRE_MINUTES=20
LOGIN_FAIL_MAX=5
LOGIN_LOCK_SECONDS=300
# ============================================================
# 验证码配置
# ============================================================
CAPTCHA_LENGTH=6
CAPTCHA_EXPIRE=300
# ============================================================
# 上传配置
# ============================================================
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
```
:::tip 配置来源
所有配置变量在 `src/config/` 目录下的各模块中读取:`app.py`(基础配置)、`database.py`(数据库)、`auth.py`(JWT)、`redis.py`(Redis)、`captcha.py`(验证码)、`email.py`(邮件)。通过 `python-dotenv` 从 `.env` 文件加载。
:::
:::danger 安全提醒
1. 真实 `.env` 文件包含敏感信息(数据库密码、JWT 密钥等),已被 `.gitignore` 忽略,请勿提交到版本控制。
2. 生产环境务必设置 `TORNADO_DEBUG=False` 和 `DB_DEBUG=False`。
3. 定期轮换 `JWT_SECRET` 密钥,提高系统安全性。
:::
## 总结
本章节汇总了项目所有可配置的环境变量,涵盖基础配置、数据库、Redis、JWT、验证码、上传、邮件和日志等功能模块。通过合理配置这些变量,可以灵活调整项目的运行参数,适应不同的开发、测试和生产环境需求。建议首次使用时以 `.env.example` 为模板,仅修改必需项,其余保持默认值即可快速启动项目。