Skip to content

配置说明

配置文件位于项目根目录 .env 文件和 config/settings/ 目录。

配置文件

youlai-django/
├── .env                    # 本地环境变量(开发环境)
├── config/
│   └── settings/
│       ├── base.py         # 基础配置
│       ├── dev.py          # 开发环境配置
│       └── prod.py         # 生产环境配置
└── manage.py               # Django 管理入口

配置加载

加载顺序

  1. 开发环境:读取 .env 文件
  2. 生产环境:通过系统环境变量注入

环境切换

bash
# 开发环境
export DJANGO_SETTINGS_MODULE=config.settings.dev

# 生产环境
export DJANGO_SETTINGS_MODULE=config.settings.prod

Django 核心配置

env
# Django 配置
DJANGO_SETTINGS_MODULE=config.settings.dev
DJANGO_SECRET_KEY=django-insecure-dev-key-change-in-production
配置项默认值说明
DJANGO_SETTINGS_MODULEconfig.settings.dev配置模块
DJANGO_SECRET_KEY-Django 密钥
DJANGO_ALLOWED_HOSTSlocalhost允许的主机

数据库配置

env
# MySQL 数据库
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=youlai_admin_django
DB_USER=root
DB_PASSWORD=123456
配置项默认值说明
DB_HOSTlocalhostMySQL 主机
DB_PORT3306MySQL 端口
DB_NAMEyoulai_admin_django数据库名称
DB_USERroot数据库用户名
DB_PASSWORD-数据库密码

Redis 配置

env
# Redis 配置
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
配置项默认值说明
REDIS_HOSTlocalhostRedis 主机
REDIS_PORT6379Redis 端口
REDIS_PASSWORD-Redis 密码
REDIS_DB0数据库编号

JWT 配置

env
# JWT 配置
SESSION_TYPE=jwt
JWT_ACCESS_TOKEN_LIFETIME=7200
JWT_REFRESH_TOKEN_LIFETIME=604800
JWT_SECRET_KEY=your-secret-key
配置项默认值说明
SESSION_TYPEjwt会话类型(jwt/redis-token)
JWT_ACCESS_TOKEN_LIFETIME7200访问 Token 有效期(秒)
JWT_REFRESH_TOKEN_LIFETIME604800刷新 Token 有效期(秒)
JWT_SECRET_KEY-JWT 签名密钥

会话模式

模式说明适用场景
jwt无状态,Token 自包含信息微服务、分布式
redis-token有状态,Token 存储在 Redis需要会话治理

OSS 配置

env
# OSS 类型:minio | aliyun | local
OSS_TYPE=minio

# MinIO 配置
MINIO_HOST_PORT=http://localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET_NAME=public

# 阿里云 OSS 配置
ALIYUN_OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
ALIYUN_OSS_ACCESS_KEY_ID=
ALIYUN_OSS_ACCESS_KEY_SECRET=
ALIYUN_OSS_BUCKET_NAME=

定时任务配置

env
# XXL-Job 定时任务
XXL_JOB_ENABLED=false
XXL_JOB_ADMIN_ADDRESSES=http://127.0.0.1:8686/xxl-job-admin
XXL_JOB_ACCESS_TOKEN=default_token
XXL_JOB_EXECUTOR_APP_NAME=xxl-job-executor-youlai-django
XXL_JOB_EXECUTOR_PORT=9999

配置读取

在代码中读取

python
import os
from dotenv import load_dotenv

# 加载 .env 文件
load_dotenv()

# 读取环境变量
db_host = os.environ.get('DB_HOST', 'localhost')
redis_host = os.environ.get('REDIS_HOST', 'localhost')

Django Settings

python
# config/settings/base.py
import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': os.environ.get('DB_HOST', 'localhost'),
        'PORT': os.environ.get('DB_PORT', '3306'),
        'NAME': os.environ.get('DB_NAME', 'youlai_admin'),
        'USER': os.environ.get('DB_USER', 'root'),
        'PASSWORD': os.environ.get('DB_PASSWORD', ''),
    }
}

环境差异

开发环境(dev.py)

  • 读取 .env 文件
  • DEBUG = True
  • SQL 日志开启

生产环境(prod.py)

  • 不读取 .env,使用系统环境变量
  • DEBUG = False
  • 安全配置强化

相关文件

文件说明
.env本地环境变量
config/settings/base.py基础配置
config/settings/dev.py开发环境配置
config/settings/prod.py生产环境配置

基于 MIT 许可发布