Skip to content

环境变量速查表

本章节汇总了项目 .env 文件中所有可配置的环境变量,按功能分类整理。所有变量均可在 .env 文件中找到示例。

温馨提示

  1. .env 文件包含项目的敏感配置信息,已被 .gitignore 忽略,不会提交到版本控制。
  2. 环境变量通过 config/env.py 加载,使用 python-dotenv 库从 .env 文件读取。
  3. .env 中的值会覆盖 config/env.py 中的默认值。

应用基础配置

变量名默认值说明
DJANGO_NAMEDjango+EleVue旗舰版应用名称,用于界面显示和系统标识
DJANGO_VERSIONv3.0.0应用版本号
DJANGO_DEBUGTrue是否开启调试模式。True 时输出详细错误堆栈,生产环境务必设为 False
DJANGO_DEMOTrue是否开启演示模式。True 时所有写操作(add/update/delete/status)返回"演示环境,暂无操作权限"。开发调试时请设为 False
DJANGO_UPLOAD_DIR项目根目录/public/uploads文件上传存储路径
DJANGO_FILE_URLhttp://file.django.elevue文件访问域名,用于拼接上传文件的访问 URL

安全提示

  1. 生产环境务必设置 DJANGO_DEBUG=False,调试模式会输出详细的错误堆栈信息,可能泄漏内部实现细节。
  2. DJANGO_DEMO 代码默认值为 True(演示模式),开发调试时需设为 False 才能执行写操作。

数据库配置

变量名默认值说明
DATABASE_ENGINEdjango.db.backends.mysql数据库引擎。支持:mysqlpostgresqlsqlite3oraclemssql
DATABASE_NAMEdjangoadmin.django.elevue数据库名称。SQLite 时作为数据库文件路径
DATABASE_HOST127.0.0.1数据库地址
DATABASE_PORT3306数据库端口
DATABASE_USERroot数据库账号
DATABASE_PASSWORDroot数据库密码
DATABASE_PREFIXdjango_数据表前缀,便于识别和多应用共存

多数据库支持

DATABASE_ENGINE 支持 Django 原生数据库引擎和第三方引擎(mssql-django)。切换引擎后需安装对应的 Python 驱动包。

Redis 缓存配置

变量名默认值说明
REDIS_HOST127.0.0.1Redis 服务地址
REDIS_PORT6379Redis 服务端口
REDIS_PASSWORD123456Redis 密码
REDIS_DB0Redis 库索引(0-15)

温馨提示

Redis 用于存储验证码、JWT 令牌黑名单等功能,是项目正常运行的必需服务。缓存 Key 前缀为 djangoadmin

IP 地理位置配置

变量名默认值说明
IP_LOCATION_SOURCEapiIP 地理位置信息来源。local - 本地数据库,api - 在线 API
IP_DATABASE_PATHdata/qqwry.ipdb本地 IP 数据库文件路径。支持格式:.ipdb.dat.mmdb
IP_API_TIMEOUT5IP 查询 API 超时时间(秒)
IP_CACHE_ENABLEDTrue是否启用 IP 地理位置缓存
IP_CACHE_TIMEOUT86400IP 缓存时间(秒),默认 1 天

短信服务配置

变量名默认值说明
SMS_PROVIDERmock短信服务商:mock(模拟)、aliyun(阿里云)、tencent(腾讯云)、huawei(华为云)

阿里云短信

变量名默认值说明
ALIYUN_ACCESS_KEY_ID(空)阿里云 AccessKey ID
ALIYUN_ACCESS_SECRET(空)阿里云 AccessKey Secret
ALIYUN_SMS_SIGN(空)阿里云短信签名
ALIYUN_REGIONcn-hangzhou阿里云短信区域
ALIYUN_SMS_TEMPLATE_CODE(空)阿里云短信模板 ID

腾讯云短信

变量名默认值说明
TENCENT_SECRET_ID(空)腾讯云 SecretId
TENCENT_SECRET_KEY(空)腾讯云 SecretKey
TENCENT_SMS_APP_ID(空)腾讯云短信应用 ID
TENCENT_SMS_SIGN(空)腾讯云短信签名
TENCENT_SMS_TEMPLATE_ID(空)腾讯云短信模板 ID
TENCENT_REGIONap-guangzhou腾讯云区域

华为云短信

变量名默认值说明
HUAWEI_ACCESS_KEY(空)华为云 AccessKey
HUAWEI_SECRET_KEY(空)华为云 SecretKey
HUAWEI_SMS_APP_KEY(空)华为云短信应用 Key
HUAWEI_SMS_SIGN(空)华为云短信签名
HUAWEI_SMS_CHANNELdefault华为云短信通道
HUAWEI_REGIONcn-north-4华为云区域

温馨提示

短信功能为预留扩展配置,默认使用 mock 模式(不实际发送短信)。

邮件服务配置

变量名默认值说明
EMAIL_PROVIDERconsole邮件服务商:console(控制台输出)、smtp(真实发送)
EMAIL_HOST(空)SMTP 服务器地址
EMAIL_PORT587SMTP 服务端口
EMAIL_USE_TLSTrue是否启用 TLS 加密
EMAIL_HOST_USER(空)发件邮箱账号
EMAIL_HOST_PASSWORD(空)邮箱授权码(不是登录密码)
DEFAULT_FROM_EMAIL(空)默认发件人邮箱

温馨提示

邮件功能为预留扩展配置,默认使用 console 模式(输出到控制台)。常见邮箱 SMTP 配置:

  • QQ 邮箱:smtp.qq.com,端口 587(TLS)或 465(SSL)
  • 163 邮箱:smtp.163.com,端口 465(SSL)
  • Gmail:smtp.gmail.com,端口 587(TLS)

定时任务配置

变量名默认值说明
JOB_THREAD_POOL_SIZE10定时任务线程池大小(同时处理的异步任务数量)
JOB_EXECUTE_TIMEOUT30任务执行超时时间(秒)
JOB_LOG_ENABLEDTrue是否记录任务执行日志
JOB_RETRY_TIMES3任务执行失败重试次数
JOB_RETRY_INTERVAL60任务执行失败重试间隔(秒)

环境变量配置示例

以下是一个开发环境的 .env 文件示例:

bash
# ============================================================
# 应用配置
# ============================================================
DJANGO_NAME=Django+EleVue旗舰版
DJANGO_VERSION=v3.0.0
DJANGO_DEBUG=True
DJANGO_DEMO=False                    # 代码默认True(演示模式),开发环境设为False以启用写操作
DJANGO_UPLOAD_DIR="E:\DjangoAdmin_Django_EleVue\public\uploads"
DJANGO_FILE_URL='http://file.django.elevue'

# ============================================================
# 数据库配置
# ============================================================
DATABASE_ENGINE="django.db.backends.mysql"
DATABASE_NAME='djangoadmin.django.elevue'
DATABASE_HOST="127.0.0.1"
DATABASE_PORT=3306
DATABASE_USER="root"
DATABASE_PASSWORD="your_password"        # 请修改为实际密码
DATABASE_PREFIX="django_"

# ============================================================
# Redis 配置
# ============================================================
REDIS_HOST="127.0.0.1"
REDIS_PORT=6379
REDIS_PASSWORD="your_redis_password"     # 请修改为实际密码
REDIS_DB=0

# ============================================================
# 站点域名配置
# ============================================================
SITE_DOMAIN="http://localhost:8000"

安全提醒

  1. 真实 .env 文件包含敏感信息(数据库密码等),已被 .gitignore 忽略,请勿提交到版本控制。
  2. 生产环境务必设置 DJANGO_DEBUG=False
  3. DJANGO_DEMO 代码默认值为 True(演示模式),开发调试时需设为 False 才能执行写操作。

.env 加载机制

项目通过 extends/extends_dotenv.py 模块实现 .env 文件的自动加载。该模块在 Django 启动时最先执行,将 .env 中的键值对注入到系统环境变量中,后续 config/env.py 通过 os.getenv() 读取。

加载流程

Django 启动


application/settings.py
    │ from extends.extends_dotenv import env_path   ← 触发加载
    │ from config.env import *                      ← 读取环境变量

extends/extends_dotenv.py
    │ 1. 定位项目根目录
    │ 2. 拼接 .env 文件路径
    │ 3. 调用 load_dotenv(env_path) 注入环境变量

config/env.py
    │ os.getenv('DJANGO_NAME', 'Django+EleVue旗舰版')
    │ os.getenv('DATABASE_HOST', '127.0.0.1')
    │ ...(所有配置项)

各模块通过 from config.env import * 使用配置

加载优先级

配置值的优先级从高到低为:

  1. 系统环境变量:操作系统级别设置的环境变量
  2. .env 文件:项目根目录下的 .env 文件
  3. 代码默认值config/env.pyos.getenv() 的第二个参数
python
# 示例:DJANGO_DEBUG 的优先级
# 1. 系统环境变量 DJANGO_DEBUG(最高优先级)
# 2. .env 文件中的 DJANGO_DEBUG=True
# 3. 代码默认值 'True'(最低优先级)
DJANGO_DEBUG = (os.getenv('DJANGO_DEBUG', 'True') == 'True')

温馨提示

extends/extends_dotenv.py 使用 python-dotenv 库的 load_dotenv() 函数,默认不会覆盖已存在的系统环境变量。如果需要强制覆盖,可使用 load_dotenv(env_path, override=True)

应用常量配置

除了 .env 环境变量外,项目还在 constant/constants.py 中定义了一些全局常量,用于控制应用的默认行为。

常量列表

常量名类型默认值说明
PAGE_SIZEint10分页查询默认每页记录数
DEFAULT_PASSWORDstr"123456"新建用户或重置密码时的默认密码
MESSAGE_OKstr"操作成功"统一的成功响应消息
MESSAGE_FAILstr"操作失败"统一的失败响应消息

使用方式

python
# 在 services.py 中使用分页常量
from constant.constants import PAGE_SIZE

def get_example_page(request):
    page_size = int(request.GET.get('pageSize', PAGE_SIZE))
    ...

# 在 R.py 中使用消息常量
from constant.constants import MESSAGE_OK, MESSAGE_FAIL

def ok(data=None, msg=MESSAGE_OK, code=0, **kwargs):
    ...

与环境变量的区别

维度环境变量(.env应用常量(constants.py
配置方式.env 文件或系统环境变量直接修改 Python 源码
是否需要重启修改 .env 后需重启服务修改后需重启服务
适用场景数据库连接、密钥、服务地址等部署相关配置分页大小、默认密码、消息文本等业务相关常量
安全性.env 已被 .gitignore 忽略代码内,提交到版本控制

温馨提示

如果需要修改常量值,直接编辑 constant/constants.py 文件即可。修改后需重启 Django 服务才能生效。

总结

本章节汇总了项目所有可配置的环境变量,涵盖应用基础配置、数据库、Redis、IP 地理位置、短信、邮件和定时任务等功能模块。通过合理配置这些变量,可以灵活调整项目的运行参数,适应不同的开发、测试和生产环境需求。首次使用时仅修改数据库和 Redis 的连接信息即可快速启动项目。

小蚂蚁云团队 · 提供技术支持